"Load Symbol List“中的"symbol”是什么意思?或者如MSDN中的示例所示:
# if允许您开始条件指令,测试一个或多个符号以查看它们的计算结果是否为true。
这些符号是在哪里定义和声明的?
发布于 2010-07-22 04:45:35
对于“加载符号列表”,符号是在编程语言的语法中定义的元素。局部变量名是一个符号。类类型标识符是一个符号。PDB文件包含符号信息,因此调试器可以知道内容驻留在哪里,以及它们在原始源代码中的名称。
对于#if," symbol“表示预处理器(c++)或有条件定义(C#)符号。C#没有预处理器阶段,所以术语可能会有点混乱。
使用# define:#define WIN32定义条件符号使用#if:#if WIN32 <...> #endif测试是否定义了符号
预处理器符号是无类型的,并且通常不与实际上是程序代码一部分的类型和标识符相交。预处理器位于源代码的“上方”。预处理器符号不存在于编译输出中,并且在运行时不会占用任何内存空间。从逻辑上讲,编译器永远看不到预处理器的语法--它在文本到达编译器之前就被删除了。
发布于 2010-07-22 04:33:55
"Symbol“在计算机科学中是一个相当宽泛(和过载/模棱两可)的术语。维基百科上有一篇关于它们的文章:Identifier/Symbol/Token。
然而,在您的例子中,您看到的是预处理器(预编译器)指令,这些指令会影响编译结果。
在#if的例子中,"symbol“只是一个变量;其中一个这样的"symbol”是DEBUG,它的用法如下:
#if DEBUG如果代码是在调试模式下编译的," Debug“符号的计算结果将为true --因此,在这种情况下,#if块中的代码将被发送到编译器。
您也可以使用#define,它创建一个符号并(或多或少)将其值设置为true。因此,未定义的符号的计算结果为false,而定义的符号的计算结果为true
发布于 2010-07-22 04:40:40
您还可以添加自己的符号以在代码中使用,或者移除内置的符号。如果使用Visual Studio,则在项目的“属性”下执行此操作,然后在“生成”选项卡下执行此操作。如果您不使用Visual Studio,我怀疑这些符号是在您编译程序时添加到命令行中的。
/Viktor
https://stackoverflow.com/questions/3303544
复制相似问题