Function 我们可以在c语言中将函数的返回值赋给宏吗

Function 我们可以在c语言中将函数的返回值赋给宏吗,function,macros,return,Function,Macros,Return,我试图将函数的返回值赋给宏。根据返回值,模型名称可能会更改。我知道我们只能给宏赋值。但我有办法做到这一点吗 #define MODEL get_model_name() 谢谢你到底想要什么? 在编译时不可能知道函数的返回值。 但如果您知道get_model_name将返回什么,则可以执行以下操作: #define MODEL_NAME "the name" 但是,如果您希望宏仅在编译时编译为函数get_model_name(),那么您已经有了它。 查看下面的代码(假设ge

我试图将函数的返回值赋给宏。根据返回值,模型名称可能会更改。我知道我们只能给宏赋值。但我有办法做到这一点吗

#define MODEL get_model_name()
谢谢

你到底想要什么? 在编译时不可能知道函数的返回值。 但如果您知道get_model_name将返回什么,则可以执行以下操作:

#define MODEL_NAME "the name"
但是,如果您希望宏仅在编译时编译为函数get_model_name(),那么您已经有了它。
查看下面的代码(假设get\u model\u name返回一个char*):


非常感谢。我希望宏在编译时展开。我的函数返回类型是enum,它看起来像“model\u t get\u model\u name()”,如果不定义model get\u model\u name(),编译器会抱怨初始值设定项元素不是常量。\ define model()\{\int retval;\retval=get\u model\u name();\retval;\}我设法添加了这段代码。但我还是犯了一个错误。这可能有什么问题?您能添加一个更完整的代码列表吗?
#include <stdio.h>
#define MODEL get_model_name()
int main(){
    printf("%s\n",MODEL);
}
//the contents of stdio.h
int main(){
    printf("%s\n",get_model_name());
}