«c» 태그된 질문

C는 시스템 프로그래밍 (OS 및 임베디드), 라이브러리, 게임 및 크로스 플랫폼에 사용되는 범용 프로그래밍 언어입니다. 이 태그는 달리 지정하지 않는 한 ISO 9899 표준 (최신 버전, 9899 : 2018, C89, c99, c11 등으로 버전 별 요청에 태그 지정)에 정의 된대로 C 언어와 관련된 일반적인 질문과 함께 사용해야합니다. C는 C ++과 구별되며 합리적인 이유없이 C ++ 태그와 결합해서는 안됩니다.

9
자기 참조 구조체 정의?
나는 오랫동안 C를 작성하지 않았으므로 이러한 종류의 재귀 적 일을 어떻게 해야하는지 잘 모르겠습니다 ... 각 셀에 다른 셀이 포함되도록하고 싶지만 오류가 발생합니다. "필드 '자식'에 불완전한 유형이 있습니다." 뭐야? typedef struct Cell { int isParent; Cell child; } Cell;
134 c  recursion  struct  typedef 

3
함수에서 구조체를 반환 할 때 가능한 GCC 버그
O'Neill의 PCG PRNG를 구현하는 동안 GCC에서 버그를 발견했다고 생각합니다. ( Godbolt의 컴파일러 탐색기의 초기 코드 ) 승산 후, oldstate로 MULTIPLIER(RDI에 저장된 결과), GCC는 해당 결과를 추가하지 않는다 INCREMENTmovabs'ing, INCREMENT다음 rand32_ret.state의 반환 값으로서 사용 도착하는 대신 RDX 할 최소한의 재현 가능한 예 ( Compiler Explorer ) : #include <stdint.h> struct retstruct …
133 c  gcc  assembly  x86-64  compiler-bug 


18
언제 노조를 사용하겠습니까? C- 전용 날의 잔재입니까?
나는 배웠지 만 실제로 노동 조합을 얻지는 못한다. 내가 통과하는 모든 C 또는 C ++ 텍스트는 그것들을 소개하지만 (때로는 통과 할 때도 있지만) 왜 또는 어디에서 사용해야하는지에 대한 실제적인 예는 거의 없습니다. 현대 (또는 레거시) 사례에서 노동 조합은 언제 유용할까요? 내 두 가지 추측은 작업 할 공간이 매우 제한적이거나 API …
133 c++  c  unions 

3
uint64_t를 어떻게 인쇄합니까? "스퓨리어스 후미 '%'형식의 실패"
printf uint64_t의 매우 간단한 테스트 코드를 작성했습니다. #include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; } 우분투 11.10 (64 비트) 및 gcc 버전 4.6.1을 사용하여 컴파일했지만 실패했습니다. main.cpp: In function ‘int main()’: main.cpp:9:30: error: expected ‘)’ before ‘PRIu64’ …
133 c++  c 

16
Windows 스레딩 : _beginthread vs _beginthreadex vs CreateThread C ++
스레드, 시작하는 더 좋은 방법이 무엇인가 _beginthread, _beginthreadx또는 CreateThread? 나는의 장점 / 단점이 무엇인지를 결정하기 위해 노력하고있어 _beginthread, _beginthreadex하고 CreateThread. 이 모든 함수는 스레드 핸들을 새로 생성 된 스레드로 반환합니다 .CreateThread는 오류가 발생할 때 약간의 추가 정보를 제공한다는 것을 알고 있습니다 (호출하여 확인할 수 있음 GetLastError) ...하지만 내가 할 때 …
133 c++  c  multithreading  winapi 

7
컴파일러가 예측 가능한 추가 루프를 곱셈으로 최적화 할 수없는 이유는 무엇입니까?
이것은 질문에 대한 Mysticial 의 훌륭한 답변을 읽는 동안 염두에 두었던 질문입니다. 정렬되지 않은 배열보다 정렬 된 배열을 처리하는 것이 왜 더 빠릅 니까? 관련된 유형에 대한 컨텍스트 : const unsigned arraySize = 32768; int data[arraySize]; long long sum = 0; 그의 대답에서 그는 인텔 컴파일러 (ICC)가 이것을 최적화한다고 설명합니다. …

6
C에서 밀리 초로 대체 슬립 기능이 있습니까?
Windows에서 컴파일 된 소스 코드가 있습니다. Red Hat Linux에서 실행되도록 변환하고 있습니다. 소스 코드에는 <windows.h>헤더 파일 이 포함되어 있으며 프로그래머는이 Sleep()함수를 사용하여 밀리 초 동안 기다렸습니다. Linux에서는 작동하지 않습니다. 그러나 sleep(seconds)함수를 사용할 수 는 있지만 초 단위의 정수를 사용합니다. 밀리 초를 초로 변환하고 싶지 않습니다. Linux에서 gcc 컴파일과 함께 사용할 …
133 c  linux  sleep 

3
OS X의 LLVM 대 클랑
OS X의 llvm, clang 및 gcc에 관한 질문이 있습니다. llvm-gcc 4.2, llvm 2.0 및 clang의 차이점은 무엇입니까? 나는 그들이 모두 llvm을 기반으로한다는 것을 알고 있지만 어떻게 다른가? 빠른 컴파일 외에도 gcc보다 llvm의 장점은 무엇입니까?
133 c++  c  gcc  llvm  clang 



25
왜 C ++보다 C ++를 사용하는 사람이 있습니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 팔년 전에 …
132 c++  c 

10
C에서 사전을 구현하는 빠른 방법
C로 프로그램을 작성하는 동안 내가 놓친 것 중 하나는 사전 데이터 구조입니다. C로 구현하는 가장 편리한 방법은 무엇입니까? 성능을 찾고 있지 않지만 처음부터 쉽게 코딩 할 수 있습니다. string-> int와 같은 일반적인 것이기를 원하지 않습니다. 그러나 임의의 수의 항목을 저장할 수 있기를 바랍니다. 이것은 운동으로 의도 된 것입니다. 사용할 수있는 …

13
최적화되지 않는 무한 빈 루프를 만들려면 어떻게해야합니까?
C11 표준은 일정한 제어식을 가진 반복문이 최적화되어서는 안된다는 것을 암시하는 것으로 보입니다. 이 답변 에서 조언을 얻었습니다. 표준 초안의 섹션 6.8.5를 구체적으로 인용합니다. 제어 표현식이 상수 표현식이 아닌 반복문은 구현에 의해 가정 될 수 있습니다. 이 답변에서 루프와 같은 루프 while(1) ;는 최적화되지 않아야한다고 언급합니다 . 그렇다면 ... Clang / …

19
카운트 다운하는 것보다 카운트 다운하는 것이 더 빠릅니까?
우리의 컴퓨터 과학 교사는 어떤 이유로 든 카운트 다운보다 카운트 다운하는 것이 더 효율적이라고 말했습니다. 예를 들어 FOR 루프를 사용해야하고 루프 인덱스가 어딘가에 사용되지 않는 경우 (N * 행을 화면에 인쇄하는 것과 같이) 다음과 같은 코드를 의미합니다. for (i = N; i >= 0; i--) putchar('*'); 보다 낫다: for (i …
131 c  performance  loops 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.