永发信息网

c++ "#"代表什么意思

答案:3  悬赏:0  手机版
解决时间 2021-11-18 04:43
  • 提问者网友:末路
  • 2021-11-17 11:46
c++ "#"代表什么意思
最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-11-17 12:09
## 连接符与# 符
## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释,但不知道也无所谓。同时值得注意的是#符是把传递过来的参数当成字符串进行替代。下面来看看它们是怎样工作的。这是MSDN上的一个例子。

假设程序中已经定义了这样一个带参数的宏:

#define paster( n ) printf( "token" #n " = %d", token##n )

同时又定义了一个整形变量:

int token9 = 9;

现在在主程序中以下面的方式调用这个宏:

paster( 9 );

那么在编译时,上面的这句话被扩展为:

printf( "token" "9" " = %d", token9 );

注意到在这个例子中,paster(9);中的这个”9”被原封不动的当成了一个字符串,与”token”连接在了一起,从而成为了token9。而#n也被”9”所替代。

可想而知,上面程序运行的结果就是在屏幕上打印出token9=9
全部回答
  • 1楼网友:神的生死簿
  • 2021-11-17 13:25
预处理是以“#”为开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后面是指令的关键字。在关键字和#号之间允许存在任意个数空白字符。 整行语句构成一条预处理指令。该指令将在编译器进行编译之前对源代码做某些转换。

# 空指令。没有任何效果。
#include 在该指令的位置包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯