«c» 태그된 질문

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

2
상수 0.0039215689는 무엇을 나타 냅니까?
다양한 그래픽 헤더 파일 에서이 지속적인 팝업이 계속 나타납니다. 0.0039215689 아마도 색과 관련이있는 것 같습니다. 다음은 Google 의 첫 번째 히트입니다 . void RDP_G_SETFOGCOLOR(void) { Gfx.FogColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f; Gfx.FogColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f; Gfx.FogColor.B = _SHIFTR(w1, 8, 8) * 0.0039215689f; Gfx.FogColor.A = _SHIFTR(w1, 0, …


11
NULL, '\ 0'과 0의 차이점은 무엇입니까?
- C, 다양한 제로 값의 차이가있을 표시 NULL, NUL및 0. ASCII 문자 '0'가 48또는로 평가 된다는 것을 알고 0x30있습니다. NULL포인터는 일반적으로 다음과 같이 정의된다 #define NULL 0 또는 #define NULL (void *)0 덧붙여 평가하고 있는 NUL캐릭터 도 있습니다.'\0'0 이 세 가지 값이 같지 않을 때가 있습니까? 64 비트 시스템에서도 마찬가지입니까?
309 c  pointers  null 

8
rand () + rand ()가 음수를 생성하는 이유는 무엇입니까?
rand()루프 내에서 한 번만 호출되면 라이브러리 함수는 거의 항상 양수를 생성 한다는 것을 관찰했습니다 . for (i = 0; i < 100; i++) { printf("%d\n", rand()); } 그러나 두 개의 rand()통화를 추가 하면 생성 된 숫자에 더 많은 음수가 있습니다. for (i = 0; i < 100; i++) { printf("%d …
304 c  random 



5
단일 곱셈으로 비트 추출
다른 질문 에 대한 답변 에 흥미로운 기술이 사용되는 것을 보았고 조금 더 이해하고 싶습니다. 부호없는 64 비트 정수가 제공되며 다음 비트에 관심이 있습니다. 1.......2.......3.......4.......5.......6.......7.......8....... 구체적으로 다음과 같이 상위 8 개 위치로 이동하려고합니다. 12345678........................................................ 로 표시된 비트의 값에 신경 .쓰지 않으며 보존 할 필요가 없습니다. 용액 불필요한 비트를 마스크하고 의한 …

3
왜 Intel C ++ 컴파일러에서 NaN-NaN == 0.0입니까?
NaN이 산술로 전파되는 것은 잘 알려져 있지만 시연을 찾을 수 없으므로 작은 테스트를 작성했습니다. #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg = -qNaN; float sub1 = 6.0f - qNaN; float sub2 = qNaN - 6.0f; float sub3 = qNaN - qNaN; …
300 c++  c  floating-point  ieee-754  icc 


14
C에서 MIN과 MAX
C에서 어디에 MIN있고 MAX정의되어 있습니까? 일반적으로 가능한 한 안전하게 입력하는 가장 좋은 방법은 무엇입니까? (주류 컴파일러를위한 컴파일러 확장 / 내장 선호)
299 c  max  min  c-preprocessor 

4
C / C ++에서 문자 크기 ( 'a')
C와 C ++에서 문자의 크기는 얼마입니까? 내가 아는 한 char의 크기는 C와 C ++에서 1 바이트입니다. C에서 : #include <stdio.h> int main() { printf("Size of char : %d\n", sizeof(char)); return 0; } C ++에서 : #include <iostream> int main() { std::cout << "Size of char : " << sizeof(char) << …
298 c++  c  types 

9
C의 포인터 : 앰퍼샌드와 별표를 언제 사용해야합니까?
포인터로 시작하고 약간 혼란 스럽습니다. 나는 &변수의 주소를 의미 *하며 포인터 변수가 가리키는 포인터의 값을 얻기 위해 포인터 변수 앞에 사용될 수 있습니다. 그러나 배열, 문자열로 작업하거나 변수의 포인터 복사본으로 함수를 호출 할 때 상황이 다르게 작동합니다. 이 모든 것 안에 논리 패턴을보기가 어렵습니다. 언제 사용해야 &하고 *?
298 c  pointers 

6
C에서 int64_t 유형을 인쇄하는 방법
C99 표준에는 int64_t와 같은 바이트 크기의 정수 유형이 있습니다. 다음 코드를 사용하고 있습니다. #include <stdio.h> #include <stdint.h> int64_t my_int = 999999999999999999; printf("This is my_int: %I64d\n", my_int); 이 컴파일러 경고가 나타납니다. warning: format ‘%I64d’ expects type ‘int’, but argument 2 has type ‘int64_t’ 나는 시도했다 : printf("This is my_int: %lld\n", my_int); …
298 c  stdint 

26
경과 시간을 쉽게 측정
프로그램의 다양한 지점을 측정 하기 위해 time () 을 사용하려고합니다 . 내가 이해하지 못하는 것은 이전과 이후의 값이 같은 이유입니다. 나는 이것이 내 프로그램을 프로파일 링하는 가장 좋은 방법은 아니라는 것을 이해하고 있습니다. printf("**MyProgram::before time= %ld\n", time(NULL)); doSomthing(); doSomthingLong(); printf("**MyProgram::after time= %ld\n", time(NULL)); 나는 시도했다 : struct timeval diff, startTV, …
297 c++  c  linux  time  measurement 

3
C에서 >>> = 연산자는 무엇입니까?
동료가 퍼즐로 생각할 때이 C 프로그램이 실제로 어떻게 컴파일되고 실행되는지 알 수 없습니다. 이 >>>=연산자와 이상한 1P1리터럴 은 무엇입니까 ? Clang과 GCC에서 테스트했습니다. 경고가없고 출력은 "???"입니다. #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] ) printf("?"); return 0; }

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