C语言中##什么意思,
发布网友
发布时间:2022-02-28 23:52
我来回答
共4个回答
热心网友
时间:2022-03-01 01:21
##在C/C++中具有连接字符串的作用。例如:
执行完A ## B后变为AB(连接A和B并去掉空格)。
下面通过具体实例来说明##的工作原理:
假设程序中已经定义了这样一个带参数的宏:
#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
热心网友
时间:2022-03-01 02:39
##用来连接前后两个参数,把它们变成一个字符串。
举例说:
#define Conn(x,y) x##y
int n = Conn(123,456); 结果就是n=123456;
char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";
你给出的宏
SHORT_REC_ADR_INIT(6)相当于{ad_rec[6].slave_address = SPI_AD_DATA_6_BASE;
热心网友
时间:2022-03-01 04:14
宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。
如定义好#define STRING(x) #x之后,下面二条语句就等价。
char *pChar = "hello";
char *pChar = STRING(hello);
##它可以拼接符号(Token-pasting operator),如:
#define paster( n ) printf( "token"#n" = %d\n", token##n )
int token9 = 100;
再调用 paster(9);宏展开后token##n直接合并变成了token9。
整个语句变成了
printf( "token""9"" = %d", token9 );
在C语言中字符串中的二个相连的双引号会被自动忽略,于是上句等同于
printf("token9 = %d", token9);。
即输出token9 = 100
热心网友
时间:2022-03-01 06:05
算是一个连接符号,表示连接成一个东西
比如你调用SHORT_REC_ADR_INIT(hello)
那么宏展开就是
{ad_rec[a].slave_address= SPI_AD_DATA_hello_BASE;}
ps:貌似你的代码里面多空格了
谢谢采纳
C语言中 ##是什么???意思???
双目操作符 ## 用于合并标记。用法示例:define X(i) x##i X(1)=X(2)=X(3);经过预处理器处理之后,它变成下面的代码:x1=x2=x3;参考资料:http://wiki.cprogram.cn
vlookup 的用法
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配(FALSE)或近似匹配(TRUE),前者要求完全匹配,后者则返回最接近且不大于查找值的项。VLOOKUP能够精确查找与大致匹配数据,并跨列提取相关信息,是数据处理中非常实用的工具。Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击4步自动完成vlookup匹配,无需手写公式,免费使用!
"#" 这个在C语言里是什么意思
“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令.所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理是C语言的一个重要功能, 它由预处理程序负责完成。当对一个源文件进行编译时, 系统将自动引用预处理程序对源程序中的预处理部分作处理, 处理完毕...
c语言#什么意思?
代表NUMBER(数字)的意思。在五线谱中也有“升半个音”的含义,通常比称作“升号”,写在符头的的左边。也代表NUMBER(数字)的意思 。C语言中的 # # 本身为指令 没有其他意义/也没有其他效果 # 号必须是该行除了任何空白字符外的第一个字符。预处理指令就是以#号开头的代码行。 # 后是指令关...
c语言中##是什么意思
在C语言中,##符号扮演着重要角色,它是预处理运算符,主要功能是实现宏扩展中的参数连接。通过##,我们可以将宏中的参数与实际变量相连,进行替换操作。例如,当你使用#define语句定义一个宏,如`#define paste(front, back) front ## back`,这个宏的目的是将传入的两个参数合成为一个字符串。当...
C语言中的‘##’的含义
拼接操作符(##)是二元的,被用来连接宏中两个实际参数,比如,如下宏定义 define internal(var) internal##var 如果执行 long internal(str);则被扩展为:long internalstr;在一般编程时很少用到拼接操作符,但在编写编译器程序或源代码生成器时特别有用,因为它能轻易的构造出一组标识符。
C语言中##什么意思,
在C/C++编程语言中,"##"符号具有连接字符串的功能,它将两个字符串合并,同时去掉中间的空格。比如,"A##B"会被转换为"AB"。下面通过一个实际例子来解释这个操作的工作原理。假设在你的代码中,你定义了一个带参数的宏`#define paster(n) printf("token" #n " = %d", token##n)`,并且...
#的C语言中的 #
C#读成C Sharp,意为C++++# 本身为指令 没有其他意义/也没有其他效果# 号必须是该行除了任何空白字符外的第一个字符。预处理指令就是以#号开头的代码行。# 后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做...
c语言,#是什么?
是预处理符号,表示后面的语句编译器在预处理的时候处理 例如#if
C语言中##什么意思,
在C/C++中具有连接字符串的作用。例如:执行完A ## B后变为AB(连接A和B并去掉空格)。下面通过具体实例来说明##的工作原理:假设程序中已经定义了这样一个带参数的宏:define paster( n ) printf( "token" #n " = %d", token##n )同时又定义了一个整形...
#在C语言里是什么意思
预处理命令以符号“#”开头。所有的预处理命令都可以称为预处理宏命令,是给编译器中的预处理器处理源文件时的命令,包括内容包含,环境变量预定义等 。狭义地说:C语言里以#开头的都是宏命令。#define #if #else 等,#符号指示预处理器处理命令,处理过程就像是CMD脚本一样,按顺序执行。