gpt4 book ai didi

c - 宏作为 C 字符数组中的值

转载 作者:行者123 更新时间:2023-11-30 14:21:00 25 4
gpt4 key购买 nike

我需要用宏初始化一个 char 数组作为它的值。我尝试这样做:

    char    text[][255] = {
"",
/* 1 */ MACRO_("Foobar","Some text to translate"),
/* 2 */ MACRO_("Foobar","Some more text to translate"),
//...
};

但我收到此错误:

error: initializer element is not constant

我认为编译器无法解析该宏。有办法让它工作吗?

最佳答案

更有可能的是,MACRO()正在扩展为非常量,例如用于查找翻译的函数调用。至少在这种情况下通常会这样做。

GNU gettext ,它也使用宏来标记和查找要翻译的上行字符串,对于此类情况,您可以使用单独的仅标记宏(通常称为 N_()),然后将字符串传递给运行时使用宏_()之前。

您不能使用需要函数调用才能计算的数据来初始化数组,它必须是常量数据。

关于c - 宏作为 C 字符数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com