社区
C语言
帖子详情
C语言中##表示什么意思?
shellfish567
2010-01-13 11:56:17
例如:
#define con_lo(x,y) x##yy
#if defined(ARRAYS)
#define locals(x,y) x[8],y[8]
#else
#define locals(x,y) x##0,x##1,x##2,x##3,x##4,x##5,x##6,x##7,\
y##0,y##1,y##2,y##3,y##4,y##5,y##6,y##7
#end if
#可以用来连接字符串,##就不知道了……望指点下哈,立即给分
...全文
7607
5
打赏
收藏
C语言中##表示什么意思?
例如: #define con_lo(x,y) x##yy #if defined(ARRAYS) #define locals(x,y) x[8],y[8] #else #define locals(x,y) x##0,x##1,x##2,x##3,x##4,x##5,x##6,x##7,\ y##0,y##1,y##2,y##3,y##4,y##5,y##6,y##7 #end if #可以用来连接字符串,##就不知道了……望指点下哈,立即给分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shanleichicheng
2010-12-08
打赏
举报
回复
Thanks!!!
shellfish567
2010-01-13
打赏
举报
回复
谢谢哈~。~版主你分多就不给了哈,给一楼了~。~
swl82560397pq
2010-01-13
打赏
举报
回复
mark
猫已经找不回了
2010-01-13
打赏
举报
回复
3
http://blog.csdn.net/hairetz/archive/2009/11/08/4785047.aspx
以前转过一篇,好好看下,蛮有用的。
1. 宏可以像函数一样被定义,例如:
#define min(x,y) (x 但是在实际使用时,只有当写上min(),必须加括号,min才会被作为宏展开,否则不做任何处理。
2. 如果宏需要参数,你可以不传,编译器会给你警告(宏参数不够),但是这会导致错误。如C++书籍中所描
述的,编译器(预处理器)对宏的语法检查不够,所以更多的检查性工作得你自己来做。
3. 很多程序员不知道的#和##
#符号把一个符号直接转换为字符串,例如:
#define STRING(x) #x
const char *str = STRING( test_string ); str的内容就是"test_string",也就是说#会把其后的符号
直接加上双引号。
##符号会连接两个符号,从而产生新的符号(词法层次),例如:
#define SIGN( x ) INT_##x
int SIGN( 1 ); 宏被展开后将成为:int INT_1;
4. 变参宏,这个比较酷,它使得你可以定义类似的宏:
#define LOG( format, ... ) printf( format, __VA_ARGS__ )
LOG( "%s %d", str, count );
__VA_ARGS__是系统预定义宏,被自动替换为参数列表。
5. 当一个宏自己调用自己时,会发生什么?例如:
#define TEST( x ) ( x + TEST( x ) )
TEST( 1 ); 会发生什么?为了防止无限制递归展开,语法规定,当一个宏遇到自己时,就停止展开,也就是
说,当对TEST( 1 )进行展开时,展开过程中又发现了一个TEST,那么就将这个TEST当作一般的符号。TEST(1)
最终被展开为:1 + TEST( 1) 。
liao05050075
2010-01-13
打赏
举报
回复
1
#define中的 #与##
#define GPEBLT_FUNCNAME(basename) (SCODE (GPE::*)(struct GPEBltParms *))&GPE::##basename
在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个字符串。
#include <stdio.h>
#define paster( n ) printf( "token " #n" = %d\n ", token##n )
int main()
{
int token9=10;
paster(9);
return 0;
}
输出为
[leshy@leshy src]$ ./a.out
token 9 = 10
http://baike.baidu.com/view/1611565.htm
C语言
--视频精讲
C语言
作为被长期使用的编程语言,可以被运用到各种操作系统,游戏,开发
中
。本课程作为互联网上首家使用C99录制的
C语言
教程,展现了全面、专业。标准的
C语言
教程。可以帮助学员从基础开始一点点的深刻理解
C语言
。
c语言
中
?:是
什么意思
?
一、
c语言
中
?:是
什么意思
? ?在
C语言
中
表示
疑问的意思 :在
C语言
中
表示
判断的结果选择 二者一同时出现,两者组成结构选择语句。 条件运算符(?:)是
C语言
中
唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式
中
的一个。 二、使用步骤 1.引入库 代码如下(示例): 2.读入数据 代码如下(示例): data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
C语言
中
的#和##
表示
的意义
前两天看到另外这么一道面试题:
C语言
中
的#和##是用来干什么的? 通过查资料今天给大家说一下: 首先,我们平常在
C语言
中
写的‘#’就是将其后面的宏参数变成一个字符串,而‘##’是将两个宏参数粘合在一起。具体使用看下面: #include <iostream> #include <stdio.h> using namespace std; #define Fin(...
c语言
各个符号代表作用啥意思,
C语言
中
#和##符号有什么样的作用
描述1、#的预处理作用预处理过程实质上是处理“#”,包括:将#include包含的头文件直接拷贝到.c当
中
;将#define定义的宏进行替换;将#if #else #endif定义的无用代码过滤掉;将代码
中
没用的注释部分删除等。从而生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。上面
中
符号“#”
表示
这是一条预处理命令,凡是以“#”开头的一般均为预处理命令,比如:#include:是包...
c语言
字母意义,%C是
什么意思
?
c语言
中
?和:是
什么意思
导航:网站首页 >%C是
什么意思
?
c语言
中
?和:是
什么意思
%C是
什么意思
?
c语言
中
?和:是
什么意思
相关问题:匿名网友:%c单个字符输出的意思。%s是输出字符串。%d是输出整型。%f是输出整型。这是在scanf、printf这样的函数
中
,将参数类型与输入/输出句子
中
的相应位置相对应所使用的转义标志符。其
中
常用的有%c--对应字符型char%s--对应字符串型char*(char[])%d-...
C语言
69,370
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章