나는 개념적으로 이와 비슷한 것을하려고 노력하고있다. 그러나 어떤 아이디어로도 작동하지 못하는 것처럼 보인다.C 프로그래밍 : 토큰 같은 매크로 전 처리기
#include <stdio.h>
int main(int argc , char const *argv[])
{
int abc_def_ghi = 42;
#define SUFFIX ghi
#define VAR(prefix) prefix##_def_##SUFFIX
printf("%d\n" , VAR(abc));
return 0;
}
// untitled:8: error: ‘abc_def_SUFFIX’ undeclared (first use in this function)
'const argv'? 처음에 나는 그런 것을 본다! 그 아이디어는 좋지만, 나는 그것을 좋아하는지 모르겠다. 그것은 '메인'을 부적합하게 만든다. 결코 내가하지 못한 일을하지 못하게한다.) – pmg
부적합하지 않다. 'argv'는'char * argv []'(C99 5.1.2.2.1)과 동등한 것으로 선언 될 수 있고,'main'이 무엇을 할 수 있는지를 제외하고는'const'를 추가하지 않습니다. 그것 (캐스트없이). non-const에 대한 포인터는 문제가없는 const에 대한 포인터로 변환 될 수 있다는 것을 기억하십시오. 포인터의 값이 같음 (6.3.2.3/2)을 비교한다는 사실에 기인합니다. –
오른쪽, 감사합니다 마이클. 다른 방식으로 (const를 제거하는 것) 비 호환으로 만들 수 있습니다. 나는 그것을 좋아하기 시작했습니다! – pmg