标签:c-preprocessor

C语言 – #include 和#include“filename”有什么区别?

在C和C ++编程语言中,使用尖括号和在include语句中使用引号有什么区别,如下所示? #include <filename> #include "filename" 答案 实际上,区别在于预处理器搜索包含文件的位置。 对于#include <filename>预处理器以依赖于实现的方式搜索,通常在编译器/ IDE预先指定的搜索目录中。此方法通常用于包括标准库头文件。 对于#include "filename"预处理器首先在与包含该指令的文件相同的目录中进行搜索,然后 […]

C++ – 为什么在宏中使用明显无意义的do-while和if-else语句?

在许多C / C ++宏中,我看到宏的代码包含在看似无意义的do while循环中。这是一些例子。 #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else 我看不出它do while在做什么。为什么不在没有它的情况下写这个? #define FOO(X) f(X); g(X) 该do ... while和if ... else在那里让这个后您的宏分号总是意味着同样的事情。假设你有 […]