永发信息网

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

答案:3  悬赏:0  手机版
解决时间 2021-11-18 04:43
c++ "#"代表什么意思
最佳答案
## 连接符与# 符
## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(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
全部回答
预处理是以“#”为开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后面是指令的关键字。在关键字和#号之间允许存在任意个数空白字符。 整行语句构成一条预处理指令。该指令将在编译器进行编译之前对源代码做某些转换。

# 空指令。没有任何效果。
#include 在该指令的位置包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何配制0.9%生理盐水100ML
这是什么词,啊,唉
华为手机如何把计步数据同步到太平洋趣跑
写一首我喜欢温悦
面交买的第一批iphonex 应该不会有假吧?有什
俪哆哆舞蹈培训中心地址在哪,我要去那里办事
1963年1O月23曰是农历的几月几日
excel中数据指什么
犬が人気があります这句话什么意思,が 。。。
彬彬有礼,垂头丧气,放诞无礼,胸有成竹,熟
这是什么东西bbyvjgjhhukoofFIOOK@gvnnhb←_
河北固安哪里有较大的建材市场?规范一点的?
孔雀鱼木炭黑种和巴西红扇会杂交出来什么样子
海运不锈钢材料总汇在什么地方啊,我要过去处
MATLAB图像处理问题:对下图实施梯度算子边缘
推荐资讯
有没有骶尾骨骨裂的朋友,有的话希望我们可以
形容声音美,甜,脆的成语
山水功放au一x607跳闸重启
DNF梵风衣绝版了吗
百合莲子冬虫草可以一起炖鸭吗
康佳KKTV LED39K60U如何使用HDMI1的ARC功能
设U=R,A={x|1≤x≤3},B={x|2<x<4},C={x|
UV电子胶检测方式
可以只念百佛名号不念百佛名经全经经文吗
问一下,南京神学院和燕京神学院在认可方面,
奔意彩票地址在什么地方,我要处理点事!
如果稍微换一下车胎轮廓年检的时候能过吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?