C에서 정적 초기화가 없으므로 전역 mtx_t를 지연 초기화하고 싶습니다. 개그 반사를 개 잡고 있습니다. 부울 플래그와 다른 것들을 사용하는 것은 문제가되지 않지만 mtx_t 변수를 확인하는 것이 좋습니다. C11의 mtx_t에 축복받은 '잘못된 상태'가 있습니까? 변수를 확인할 수 있습니까? 초안 표준에서 아무 것도 찾을 수 없습니다.
최근에 C 표준을 채택하는 일부 페이지를 살펴본 결과 15 년 전에 작성된 C99가 아직 완벽하게 지원되지 않는다는 사실에 놀라움을 금치 못했습니다. 대부분의 컴파일러는 (전부는 아닐지라도) 전체 C99를 지원하지 않으며 우리는 이미 C11을 가지고 있습니다. 그 표준이 죽거나 무시되거나 더 이상 C에 투자 할 가치가 없다는 것을 의미합니까?
현재 값을 검사하는 매크로가 유형입니다. #define CHECK_TYPE_INLINE(val, type) \
((void)(((type)0) != (0 ? (val) : ((type)0))))
매크로 args를 유형 검사 할 수있는 경우에 유용합니다. 하지만 여러 가지 유형을 확인하려면 어떻게해야합니까? 예를 들어 struct Foo * 또는
내가 C11는 더 이상 루프 구조 내에서 반복자 변수를 선언 할 수 있습니다 것으로 나타났습니다 없습니다, 예를 들면, 다음이 잘못 int i;
for (i = 0; i < 10; ++i)
는 C99 전에 함수 (블록? Does C11 allow variable declarations at any place in a function?)의 시작 부분을
특정 유형의 인수가있는 함수를 받아들이도록 함수 포인터 인수를 제한하지 않고 형식 시스템을 "해킹"하는 실험을하고있었습니다. 그러나 나는 여전히 형식 안전성을 원했기 때문에이 "해킹"과 _Generic 키워드의 가능성을 결합 할 것이라고 생각했습니다. I가 다음과 같은 네 가지 기능 : #include <stdio.h> /* printf() */
#inc
calloc reference in cppreference에있는 calloc에 대한 참고 자료를 읽었을 때 얻지 못한 다음 팁을 발견했습니다. 은 calloc는 스레드 안전 : 그것은 정적 스토리지 만 인수 통해 표시 메모리 위치를 액세스하는 것처럼 작동되는 것은 아니다. 메모리 영역 할당 해제 또는 무료 realloc을에 동기화를-함께 이전 호출 동일
믿을만한 몇몇 출처 (즉, 비공식 채널을 사용하는위원회 구성원)의 애매한 의견을 듣고 C 유형 일반 표현식을 C++에 추가 할 수 없으므로 막연한 의견을 들었습니다. 내가 알 수있는 한, 타입 - generic 표현식은 C++ 템플릿과 오버로드에 비해 매우 제한적이지만 특별한 경우로 정의해야 할 상호 작용 가능성이 없습니다. 유형 일반 표현식은 제어 표현식