나는 영향을 받았다. "A D interface file contains only what an import of the module needs, rather than the whole implementation of that module." 나에게 그것은 서명으로 변환된다. 형식, 이름 및 인수 만 반환하므로 컴파일러에서 유효하다는 것을 알고 링커가 나중에 더러운 작업을 수행 할 수있다.인터페이스 파일에없는 것은 무엇입니까?
스트립을하지만, dmd
을 통해 거의 아무것도 파일을 실행하지 : 최적화의
import std.stdio;
void SayHello(const string Name)
{
writeln("Hello, ", Name, "!");
}
dmd Interface.d -o- -H
// D import file generated from 'Interface.d'
import std.stdio;
void SayHello(const string Name)
{
writeln("Hello, ",Name,"!");
}
단단하게 모범을.
인터페이스 파일에서 정확히 무엇이 제거 되었습니까?
(그것은 내가 찾을 수있는 가장 가까운 일이기 때문에 header-files 덧붙였다.)
대부분의 작업이 이미 완료된 상태에서 .di 파일을 소스의 직렬화 된 복사본으로 만드는 것이 무엇인지 궁금해했습니다. mmap in, 올바른 심볼 테이블에 포인터 삽입 , 끝났어. – BCS
@BCS'.di' 파일은 실제로 표준의 일부가 아니므로 그 아이디어를 얻는 정치는 없습니다. 나는 왜 그들이 그것을하지 않은지 궁금해! – Maxpm