Я знаю, что вы можете вернуть строку символов из нормальной функции в C как в этом кодеВозвращение символьной строки из #define функции
#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));
}
Я знаю, что существуют обходные пути (например, с помощью первой программы). Я просто хочу знать, если это возможно
Короткий ответ: Вы не можете. Не запутайтесь, макрофункция не работает как функция. –