首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Load Symbol List“中的"symbol”是什么意思?

"Load Symbol List“中的"symbol”是什么意思?
EN

Stack Overflow用户
提问于 2010-07-22 04:30:24
回答 3查看 2.2K关注 0票数 1

"Load Symbol List“中的"symbol”是什么意思?或者如MSDN中的示例所示:

# if允许您开始条件指令,测试一个或多个符号以查看它们的计算结果是否为true。

这些符号是在哪里定义和声明的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-22 04:45:35

对于“加载符号列表”,符号是在编程语言的语法中定义的元素。局部变量名是一个符号。类类型标识符是一个符号。PDB文件包含符号信息,因此调试器可以知道内容驻留在哪里,以及它们在原始源代码中的名称。

对于#if," symbol“表示预处理器(c++)或有条件定义(C#)符号。C#没有预处理器阶段,所以术语可能会有点混乱。

使用# define:#define WIN32定义条件符号使用#if:#if WIN32 <...> #endif测试是否定义了符号

预处理器符号是无类型的,并且通常不与实际上是程序代码一部分的类型和标识符相交。预处理器位于源代码的“上方”。预处理器符号不存在于编译输出中,并且在运行时不会占用任何内存空间。从逻辑上讲,编译器永远看不到预处理器的语法--它在文本到达编译器之前就被删除了。

票数 2
EN

Stack Overflow用户

发布于 2010-07-22 04:33:55

"Symbol“在计算机科学中是一个相当宽泛(和过载/模棱两可)的术语。维基百科上有一篇关于它们的文章:Identifier/Symbol/Token

然而,在您的例子中,您看到的是预处理器(预编译器)指令,这些指令会影响编译结果。

#if的例子中,"symbol“只是一个变量;其中一个这样的"symbol”是DEBUG,它的用法如下:

代码语言:javascript
复制
#if DEBUG

如果代码是在调试模式下编译的," Debug“符号的计算结果将为true --因此,在这种情况下,#if块中的代码将被发送到编译器。

您也可以使用#define,它创建一个符号并(或多或少)将其值设置为true。因此,未定义的符号的计算结果为false,而定义的符号的计算结果为true

票数 6
EN

Stack Overflow用户

发布于 2010-07-22 04:40:40

您还可以添加自己的符号以在代码中使用,或者移除内置的符号。如果使用Visual Studio,则在项目的“属性”下执行此操作,然后在“生成”选项卡下执行此操作。如果您不使用Visual Studio,我怀疑这些符号是在您编译程序时添加到命令行中的。

/Viktor

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3303544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档