c11

    1

    1답변

    C에서 정적 초기화가 없으므로 전역 mtx_t를 지연 초기화하고 싶습니다. 개그 반사를 개 잡고 있습니다. 부울 플래그와 다른 것들을 사용하는 것은 문제가되지 않지만 mtx_t 변수를 확인하는 것이 좋습니다. C11의 mtx_t에 축복받은 '잘못된 상태'가 있습니까? 변수를 확인할 수 있습니까? 초안 표준에서 아무 것도 찾을 수 없습니다.

    16

    2답변

    다음 코드는 질문 제목에 설명 된 2 개의 경고를 생성합니다. #include <stdio.h> static void _print_f(float *f){printf("float : %f\n", *f);} static void _print_i(int *i) {printf("int : %d\n", *i);} #define print(num) _Gene

    1

    1답변

    최근에 C 표준을 채택하는 일부 페이지를 살펴본 결과 15 년 전에 작성된 C99가 아직 완벽하게 지원되지 않는다는 사실에 놀라움을 금치 못했습니다. 대부분의 컴파일러는 (전부는 아닐지라도) 전체 C99를 지원하지 않으며 우리는 이미 C11을 가지고 있습니다. 그 표준이 죽거나 무시되거나 더 이상 C에 투자 할 가치가 없다는 것을 의미합니까?

    1

    2답변

    현재 값을 검사하는 매크로가 유형입니다. #define CHECK_TYPE_INLINE(val, type) \ ((void)(((type)0) != (0 ? (val) : ((type)0)))) 매크로 args를 유형 검사 할 수있는 경우에 유용합니다. 하지만 여러 가지 유형을 확인하려면 어떻게해야합니까? 예를 들어 struct Foo * 또는

    1

    1답변

    C11이 바이트 및 vec3_t와 같은 사양의 일부로 일부 항목을 포함하는지 확인하십시오. #ifdef을 통해 경고없이 가능한 많은 컴파일러를 이미 너무 많이 지원하는지 여부를 판단 할 수있는 방법이 있습니까?

    1

    2답변

    내가 C11는 더 이상 루프 구조 내에서 반복자 변수를 선언 할 수 있습니다 것으로 나타났습니다 없습니다, 예를 들면, 다음이 잘못 int i; for (i = 0; i < 10; ++i) 는 C99 전에 함수 (블록? Does C11 allow variable declarations at any place in a function?)의 시작 부분을

    3

    1답변

    특정 유형의 인수가있는 함수를 받아들이도록 함수 포인터 인수를 제한하지 않고 형식 시스템을 "해킹"하는 실험을하고있었습니다. 그러나 나는 여전히 형식 안전성을 원했기 때문에이 "해킹"과 _Generic 키워드의 가능성을 결합 할 것이라고 생각했습니다. I가 다음과 같은 네 가지 기능 : #include <stdio.h> /* printf() */ #inc

    -1

    1답변

    calloc reference in cppreference에있는 calloc에 ​​대한 참고 자료를 읽었을 때 얻지 못한 다음 팁을 발견했습니다. 은 calloc는 스레드 안전 : 그것은 정적 스토리지 만 인수 통해 표시 메모리 위치를 액세스하는 것처럼 작동되는 것은 아니다. 메모리 영역 할당 해제 또는 무료 realloc을에 동기화를-함께 이전 호출 동일

    7

    1답변

    소스 파일에서 사용 된 컴파일러가 static_assert를 지원하는지 감지하고 싶습니다.

    9

    1답변

    믿을만한 몇몇 출처 (즉, 비공식 채널을 사용하는위원회 구성원)의 애매한 의견을 듣고 C 유형 일반 표현식을 C++에 추가 할 수 없으므로 막연한 의견을 들었습니다. 내가 알 수있는 한, 타입 - generic 표현식은 C++ 템플릿과 오버로드에 비해 매우 제한적이지만 특별한 경우로 정의해야 할 상호 작용 가능성이 없습니다. 유형 일반 표현식은 제어 표현식