奇思妙想

2024年 4月 15日

头文件并不是编译单元?

经常写C/C++代码的人,会注意到,编译器提示的日志基本不会包含.h的编译,除非是.h有报错才会提示.h的讯息。这是因为,C/C++的编译单元是源代码.c或.cpp, 而非.h. .h只是辅助.c/....

进一步了解
2024年 4月 15日

如何包含头文件最多只有一次?

早期,标准的C语言采用#ifndef/#define的模式让头文件永远只能被包含一次,避免重复。事实上,这种写法更多是利用了条件编译宏,如果不小心将不同头文件用了同一个宏判断,会出现稀奇古怪的错误。O...

进一步了解
2024年 4月 14日

编程语言字符集有两个?

编程语言一般有两个字符集,一个是源码字符集,一个是编码字符集。 出现这两个字符集的原因,可以参考为什么VS编译UTF-8格式源代码, 代码中字符串却是ANSI编码?.

进一步了解