奇思妙想 · 2024年 5月 1日 0

哪些编程语言支持macro(宏)?

81 次浏览

C/ObjC/C++/Swift/C#/Rust都支持宏。值得注意的是:

  • Rust并没有C语言的#define/#if之类的宏,而是通过 #[cfg] 属性来实现feature和条件编译。
    形如:
    #[cfg(target_os = "linux")]代表target_os是linux时才编译;
    #[cfg(feature = "debug")]表示开了debug功能才会编译。
    当然,上面的都是雕虫小技,Rust还提供更复杂的Macros功能,这里不细讲。
  • Swift和C#都提供类似C语言#if的条件编译,但不支持#ifdef指令。