C语言中 # 和 ## 的用法

# 是 字符串化操作符,定义时用括号代表参数传递,

可以把传入的参数名替换成带双引号的字符串

定义: #define a(b) #a

使用:a(123)  

编译时会展开成   "123" 

## 是字符串连接符,定义时用括号代表参数传递,

可以把参数在宏定义的字符串末尾连接起来,起到strcat的效果

定义: #define a(b) 123##b

使用:a(123)  

编译时会展开成   123123 

关键字volatile有什么含义

防止编译器优化,a=1,a=2,a=3不被优化成a=3,强制不读缓存去读寄存器

读寄存器必须加volatile,因为寄存器的值经常改变,防止读缓存。

多线程任务共享资源必须加volatile,防止编译器优化出现ABA问题。

关键字static的作用是什么

定义静态变量或者函数,静态变量只初始化一次,如果在类里就属于类。

如果不

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部