2、#和##

在C语言中#是在宏定义中将参数进行字符串化

#include<stdio.h>

#define dprint(expr) printf(#expr"=%d\n",expr); 

int main() 
{  
    int a=20,b=10;
    dprint(a/b);
    return 0; 
}

/*
   输出:a/b=2
 */

在C语言宏定义中##是连接符,将字符串连接

#include <stdio.h>
#define f(a,b) a##b
#define g(a)   #a
#define h(a) g(a)

int main()
{
        printf("%s\n",h(f(1,2)));
        printf("%s\n",g(f(1,2)));
        return 0;
}
运行结果为
12
f(1,2)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • C语言预处理功能概要 功能说明宏定义#define,#undef文件包含#include条件编译#ifdef,#i...
    特立独行的佩奇阅读 825评论 0赞 0
  • Java标示符 Java中对各种变量、方法、和类等要素命名是使用的字符序列为标示符,凡是自己可以起名的地方都叫标示...
    BigZoo阅读 510评论 0赞 0
  • 常量的概述和使用 A:什么是常量在程序执行的过程中其值不可以发生改变 B:Java中常量的分类字面值常量自定义常量...
    野望君阅读 701评论 0赞 0
  • 02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量在程序执行的过程中其值不可以发生改变 B:...
    java那点儿事阅读 118评论 0赞 0
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 9,568评论 0赞 4

友情链接更多精彩内容