2010-04-08 5 views

답변

5

C는 고정적이므로 변수가 이미 선언 된 경우 "조회"할 수 없습니다. 코드 생성기를 만드는 경우 코드 줄을 읽고 선언 된 내용을 확인하십시오.

+0

사실 나는 여러 버전의 파일을 생성하고 있으며 전체 패치를 생성하고 있습니다. 이 패치는 매크로를 삽입하고 일부 매크로는 선언으로 확장되므로 패치 조합이 매우 까다로울 수 있으므로 생성 시간에 모든 것을 알 수 없습니다 – LB40

0

아니요. 코드를 사용하려고 시도하고 코드가 컴파일되는지 확인하지 않는 한 아닙니다.

모든 변수 파일의 맨 위에 표준 #ifdef과 같은 일종의 특정 변수에 대한 전 처리기로 해킹하려고 시도 할 수 있습니다. 그것은 전처리 기가 컴파일러가 실행되기 전에 실행되기 때문에 범위를 인식하지 못합니다.

C는 그렇게 동적 인 언어가 아닙니다.

+0

동의하지만 CPP 트릭을 찾을 수 없습니다 ... – LB40

1

아니요, 없습니다. 그렇게하는 것은 컴파일러가하는 일 중 많은 부분을 차지합니다.

변수 이름을 고유하게 만드는 일반적인 방법은 가능하면 매우 적은 변수 이름을 사용하는 것입니다 (가능한 경우 줄 번호와 함께 사용). 뭔가 같은 것

// beware, brain-compile code ahead! 
a_rather_unlikely_variable_name_by_sbi_ ## __LINE__ 
0

발전기가 생성 한 변수 또는 사용자가 입력 한 내용이 있습니까? 직접 변수를 생성 할 때 변수와 함께 전 처리기 토큰을 내보내고 나중에 해당 토큰이 있는지 확인할 수 있습니다.

0

저는 꽤 늦었습니다. 잘 알고있는 쉬운 방법은 텍스트 파일입니다. 변수 이름을 선언 할 때 바로 파일에 쓰고 나중에 이름이 기록되는지 확인하십시오. "DEF" "IF_DEF"및 "IF_NOT_DEF"의 3 가지 매크로 만 만들면 모양이 좋아집니다. C로는 검색 할 수 없지만 파일 내부를 검색 할 수 있습니다. 하지만 약간의 기억이 필요합니다.

관련 문제