gpt4 book ai didi

c++ - GNU g++预处理器/编译器:printf值

转载 作者:行者123 更新时间:2023-12-02 09:50:28 26 4
gpt4 key购买 nike

您好,我正在寻找GCC打印在编译期间计算出的值的解决方案。

有消息杂项,但它们只能打印用户输入的字符串。我正在寻找的是printf样式的输出,我可以在其中输入参数。

示例

printf("hi %s, my value is %d\n", "john", 15);

示例2:为此搜索解决方案
void dummy(MyObjectReference & obj)
{
#if(sizeof(obj) != 512)
#pragma message "cannot build, your object size is not 512, it is %d", sizeof(obj)
#error "stop build"
#endif

obj.do_stuff();

return obj.get_result();
}

最佳答案

Hi im looking for a solution for GCC to printf a value which is calculated during compilation.



您不能使用标准的 GCC 9来做到这一点。

您可以考虑编写自己的 GCC plugin,例如,根据自己的需要提供一些其他 #pragma(或GCC内置)。

但是,开发这样的插件可能需要花费您数周的时间。您需要了解GCC内部结构才能对该插件进行编码。因此,请查看 GCC resource中心。

在C++ 11或更高版本中,您可以使用 use static_assert(sizeof(obj) == 512, "bad size of obj")进行 after预处理(但不会将 sizeof(obj)显示为整数)。

关于c++ - GNU g++预处理器/编译器:printf值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59984099/

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