#define PARTS_COLUMN“|%-16s |%-50s | \ n”

时间:2013-12-08 13:08:02

标签: c macros c-preprocessor

我在示例 C 文件中看到了以下一些代码:

#define TEACHER_TABLE_LINE "| %-16s | %-50s |\n"

对于 C 真的很新,并且没有成功使用Google,有人可以告诉我这个功能的名称是什么,所以我可以正确查找它吗?

(PS是的,我会尽快拿出一本好的 C 书(建议?),但目前我需要尽快完成这项工作。)

1 个答案:

答案 0 :(得分:1)

它只是一个预处理器宏,它定义了预处理标识符TEACHER_TABLE_LINE,以便在源代码中用字符串"| %-16s | %-50s |\n"替换它。

Fron C11, 6.10.3 Macro replacement /9

  

表格的预处理指令:
  # define identifier replacement-list new-line
  定义一个类似于对象的宏,它使宏名称的每个后续实例都被构成指令其余部分的预处理标记的替换列表替换。

它基本上意味着,稍后在代码中,语句如:

printf (TEACHER_TABLE_LINE, teacherName, teacherAddress);

将被视为您已写完:

printf ("| %-16s | %-50s |\n", teacherName, teacherAddress);