在每个文件中使用相同的#define

问题描述 投票:3回答:1

我想制作一个脚本,在每个.C和.H文件中添加一个文件ID号。这用于标识从哪个文件生成错误消息。

所以每个文件都有一个唯一的数字,例如:

fileID        (magic)

问题是,这仅需要在该文件中退出。因为每个文件都有它自己的。

编辑:我需要一个数字而不是一个字符串。因此__FILE__不起作用。

c preprocessor
1个回答
6
投票

我通常将此宏用于错误消息:

#define P_ERR(format, ...) \
    fprintf(stderr, "%s:%d:%s: " format "\n", __FILE__, __LINE__, strerror(errno), ##__VA_ARGS__)

您可以在docs中了解所有这些宏。

特定于__FILE__

__FILE__该宏以C字符串常量的形式扩展为当前输入文件的名称。这是预处理器打开文件的路径,而不是在“ #include”中指定的简称或作为输入文件名参数的路径。例如,“ / usr / local / include / myheader.h”是此宏的可能扩展。

© www.soinside.com 2019 - 2024. All rights reserved.