【发布时间】:2013-12-17 23:54:11
【问题描述】:
我知道你可以从 C 中的普通函数返回一个字符串,就像这段代码一样
#include <stdio.h>
char* returnstring(char *pointer) {
pointer="dog";
return pointer;
}
int main(void)
{
char *dog = NULL;
printf("%s\n", returnstring(dog));
}
但是,我找不到能够在 #define 函数中返回字符串的方法,就像这段代码中一样
#include <stdio.h>
#define returnstring(pointer) { \
pointer="dog"; \
return pointer; \
}
int main(void)
{
char *dog = NULL;
printf("%s\n", returnstring(dog));
}
我知道有一些解决方法(比如使用第一个程序)。我只想知道有没有可能
【问题讨论】:
-
简短回答:你不能。不要混淆,类宏函数的行为不像函数。
标签: c string function c-preprocessor