如何解决C语言,函数名与宏冲突

#include 
void f() { printf("function\n"); }
#define f() printf("macro\n")
int main() {
  f(); // macro
  (f)(); // function
  return 0;
}

函数名加括号即可!

C函数库中描述

一个函数的任何宏定义都可以通过用括号把函数名括住来局部抑制他,因为这个名字后面没有跟着指示宏函数名展开的左括号

你可能感兴趣的:(c)