C中define的#和##

简介: C中define的#和##

C中的#define语句,有时候非常之方便。方便归方便,有时候有很多特殊要求,就不好玩。汝遇到这样的问题,别人也早就遇到了。比如说:


两个字串直接合并:

#define TEXT "a" "b"


展开之后,结果就是"ab"


参数字串合并

#define test(param) printf( "param is " #n "\n")


test(csdn)展开之后,结果应该是:printf( "param is csdn\n")


参数链接

#define paster(param1,param2) printf( "two params is %s\n", param1 ## param2)


展开结果。。。吾没有测试……

目录
相关文章
|
缓存 Java Linux
Centos应用“Cannot allocate memory”的解决方案
Centos应用“Cannot allocate memory”的解决方案
551 0
Centos应用“Cannot allocate memory”的解决方案
|
存储 缓存 API
freetype用法
freetype用法
337 0
|
9月前
|
Ubuntu Linux Windows
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
411 0
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
|
9月前
|
存储 Linux API
xenomai内核解析--双核系统调用(一)
本文介绍了Xenomai内核系统调用的实现,探讨了在Linux内核与Xenomai实时内核共存时,系统调用如何区分和交互。系统调用是用户空间与内核空间通信的关键,它提供了硬件抽象、系统稳定性、安全性和可移植性。在32位系统中,通过`int 0x80`指令触发,而在64位系统中,使用`syscall`指令。Xenomai通过I-pipe拦截系统调用,区分实时与非实时任务,并通过`cobalt_syscalls`表执行相应操作。文章还详细解析了系统调用表的生成和权限控制机制。
194 1
xenomai内核解析--双核系统调用(一)
dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
863 0
|
9月前
|
C++ 容器
【C++STL基础入门】list交换、翻转,排序、合并和拼接操作
【C++STL基础入门】list交换、翻转,排序、合并和拼接操作
798 0
|
8月前
|
网络协议 Linux 编译器
【原创】EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统移植指南
EtherCAT主站方案对比:商业的如Acontis、TwinCAT3和开源的igh、SOEM。SOEM易移植但功能和实时性不足,适合简单应用;igh功能强大,实时性能优秀,基于内核态,适合复杂场景。igh能移植到其他RTOS,但需克服多任务无调度的挑战。依赖操作系统服务如定时器、内存分配,适合Linux内核,但移植到裸机复杂。
401 0
|
4月前
|
机器学习/深度学习 人工智能 程序员
利用 AI 进行代码审查:提升软件质量的新途径
【10月更文挑战第18天】本文探讨了利用 AI 进行代码审查的优势和方法,包括提高审查效率、减少人为错误、确保一致性和标准化以及提供实时反馈。介绍了 SonarQube、DeepCode 和 GitHub Copilot 等工具,并分享了实施 AI 代码审查的最佳实践。通过结合 AI 和人工审查,可以显著提升软件质量。

热门文章

最新文章