例如:
#include "pathtoheader1/header1.hh"
##include "pathtoheader2/header2.hh"
这两个预处理程序指令有什么区别?
修改
据我所知,## include指令在我正在使用的程序的上下文中,将-I标志添加到指定的包含路径。
TRICK_CFLAGS += -Imodels
TRICK_CXXFLAGS += -Imodels
编译器现在将寻找:
/models/pathtoheader1/header1.hh
而不是
/pathtoheader1/header1.hh
这些标志存储在.mk文件中。
其他信息
我正在使用NASA的Trick Simulation环境来构建一个简单的2体模拟绕太阳运行的地球。我正在使用的特定工具称为'trick-CP',Trick的编译工具。
答案 0 :(得分:3)
##
是C和C ++预处理器中的令牌粘贴运算符。它用于连接两个参数。
由于它需要任一方的参数,因此以它开头的行在语法上不是有效的,除非它是前一行的延续,其中前一行使用了行继续符号\
或等效的三字符序列。 / p>
答案 1 :(得分:2)
第二个是C ++中的语法错误,我很确定它也是C语法错误。 ##
预处理程序运算符仅在预处理程序宏内部有效(强制标记粘贴)。
答案 2 :(得分:2)
问题是关于NASA Trick。 Trick用自己的语法扩展了C和C ++语言。
来自Trick documentation:
应使用## include包含为用户定义的模型提供数据类型的头文件。注意双重哈希(#)。