0
우리는 (예를 들어 uname --kernel-name
.)견적 -D
#include <stdio.h>
#define version(v) #v
#define VERSION(v) version(v)
int main(void)
{
printf("Version: %s\n", VERSION(kernel_name));
return 0;
}
사용 컴파일 된 매크로 사전 procesor로 (플래그) 명령의 출력을 사용하여 매크로 전처리 :
gcc -Wall -pedantic -o demo demo.c -Dkernel_name=$(uname --kernel-name)
출력 :
Version: Linux
그러나 매크로로 시작 때 실패 #
(예 :. 0) : 명령의 출력을 인용하는 방법은
[email protected]:~$ uname --kernel-version
#1 SMP Debian 3.2.46-1+deb7u1
당신이 전처리 #
#define SOMETHING #something /* error: stray ‘#’ in program */
시작으로 정의 할 수 없기 때문에이 있습니까?
"#1 SMP Debian 3.2.46-1+deb7u1"
올바른 입력을 얻으려면?
어리석은 me !!, 매력처럼 작동합니다. "$"(uname - kernel-name) ""' –
예, 놓치지 않으 셨습니다. :) – tangrs
:(예, 감사합니다 !! –