난은 OpenSSL에서 사용되는 일부 처리기 매크로보고 있었다, 그리고 나는 crypto/stack/safestack.h
에서 다음 건너 온 : 나는 그것은 컴파일러의 버그 (hasn 그 고대 아마 뭔가를 해결하기 위해 그런 식으로 작성 같은데요상수 (true) 값을 갖는 조건부 연산자?
#define CHECKED_STACK_OF(type, p) \
((_STACK*) (1 ? p : (STACK_OF(type)*)0))
#define CHECKED_SK_FREE_FUNC(type, p) \
((void (*)(void *)) ((1 ? p : (void (*)(type *))0)))
#define CHECKED_SK_FREE_FUNC2(type, p) \
((void (*)(void *)) ((1 ? p : (void (*)(type))0)))
공급 업체가 10 년 동안 지원해 왔음).
는 항상 true 이후 위의 1
를 사용하는 목적은 무엇인가?
조건부 연산자의 두 번째와 세 번째 피연산자가 같은 유형으로 변환 될 수있는 'p'유형을 확인해야합니다. –