手机版

百科生活 投稿

C编程技巧运算符,c语言基础运算符

百科 2025-12-31 20:15:41 投稿 阅读:5601次

关于【C编程技巧运算符】,c语言基础运算符,今天小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

一、运算符#

  • # 运算符用于在预处理期将宏参数转换为字符串
  • # 的转换作用是在预处理期完成的,因此只在宏定义中有效

示例如下

#include #define TO_STRING(s) #sint main(void){printf(TO_STRING(689754));printf("\n");return 0;}

运行结果如下

C编程技巧运算符,c语言基础运算符

该运算符用途就是字符串化。C语言允许在字符串中包含宏参数。例如,如果x是一个宏形参,那么#x就是转换为字符串“x”的形参名

示例如下:

#include #define square(x) printf("The square of " #x " is %d.\n",((x)*(x)))int main(void){ int a = 9; SQUARE(a); SQUARE(5 4); return 0;}

运行结果如下

C编程技巧运算符,c语言基础运算符

这里需要注意,#运算符是在预处理期间完成的,做了字符串化,而运算不是!

二、运算符##

  • ## 运算符用于在预处理期粘连两个标识符
  • ## 的连接作用是在预处理期完成的,因此只在宏定义中有效

示例如下

#include #define CONNECT_STRING(a,b) (a##b)int main(void){printf("value=http://www.029ztxx.com/tg/%d/n", CONNECT_STRING(10, 50));return 0;}

运行结果如下

C编程技巧运算符,c语言基础运算符

该运算符就是用于标识的拼接。一般在批量定义结构体或者函数时,用该运算符会比较省事。

C编程技巧运算符,c语言基础运算符

三、注意事项

当宏参数是另一个宏的时候,凡是宏定义里有用“#”、“##”的地方,宏参数是不会再展开了!!!

示例如下

#include #define TO_STRING(s) #s#define VALUE 100int main(void){printf(TO_STRING(VALUE));printf("\n");return 0;}

运行结果如下

C编程技巧运算符,c语言基础运算符

解决如下

#include #define _TO_STRING(s) #s#define TO_STRING(s) _TO_STRING(s)#define VALUE 100int main(void){printf(TO_STRING(VALUE));printf("\n");return 0;}

运行结果如下

C编程技巧运算符,c语言基础运算符

其实解决这个问题,就是加了一个中间转换层,让所有宏的参数在这里全部展开。

本文关键词:c语言中的基本运算符,c语言基本运算符,c语言的运算符运算规则是怎么样的,c语言运算符总结,c语言运算符例题带解析。这就是关于《C编程技巧运算符,c语言基础运算符》的所有内容,希望对您能有所帮助!

本文链接:https://bk.89qw.com/a-818674

最近发表
网站分类