字符串作为C中带参数的宏
考虑到以下因素:字符串作为C中带参数的宏,c,macros,C,Macros,考虑到以下因素: Page 1 of 100 其中1和100不是固定值 如何定义一个C宏,以便通过将两个值作为参数传递来呈现该字符串 为明确起见,格式必须如下所示: #define PAGE_IDX_MACRO(x,y) 您可以通过双哈希标记连接字符串: 提供一种方法,用于在执行过程中[串联实际参数][1] 宏观扩张 [1] : 从这个问题: 您可以通过双哈希标记连接字符串: 提供一种方法,用于在执行过程中[串联实际参数][1] 宏观扩张 [1] : 从这个问题: 运算符将预处理器标记转
Page 1 of 100
其中1和100不是固定值
如何定义一个C宏,以便通过将两个值作为参数传递来呈现该字符串
为明确起见,格式必须如下所示:
#define PAGE_IDX_MACRO(x,y)
您可以通过双哈希标记连接字符串: 提供一种方法,用于在执行过程中[串联实际参数][1] 宏观扩张 [1] : 从这个问题:
您可以通过双哈希标记连接字符串: 提供一种方法,用于在执行过程中[串联实际参数][1] 宏观扩张 [1] : 从这个问题: 运算符将预处理器标记转换为字符串文字 字符串文本在C中通过简单地在它们之间添加一个空格来连接,即helloworld相当于helloworld 因此,宏应该是:
#define PAGE_IDX_MACRO(x, n) ("Page " #x " of " #n)
假设它是这样称呼的:
PAGE_IDX_MACRO(1, 100);
其中1和100是编译时常量。运算符将预处理器标记转换为字符串文字
字符串文本在C中通过简单地在它们之间添加一个空格来连接,即helloworld相当于helloworld
因此,宏应该是:
#define PAGE_IDX_MACRO(x, n) ("Page " #x " of " #n)
假设它是这样称呼的:
PAGE_IDX_MACRO(1, 100);
其中1和100是编译时常量。既然你说的是字符串,即使你没有使用引号,也要查找stringize操作符。既然你说的是字符串,即使你没有使用引号,也要查找stringize操作符。虽然我不确定这里真的需要这样做-定义PAGE_IDX_MACROx,y PAGE x of y应该做,可能是stringized,可能是通过使用另一个间接预处理器。我认为这里没有真正的连接。虽然我不确定这里是否真的需要-定义PAGE_IDX_MACROx,y PAGE x of y应该这样做,可能是字符串化的,可能是通过使用另一个间接预处理器。我认为这里没有什么是真正的连接。