«c» 태그된 질문

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

6
다차원 배열은 메모리에서 어떻게 포맷됩니까?
C에서는 다음 코드를 사용하여 힙에 2 차원 배열을 동적으로 할당 할 수 있다는 것을 알고 있습니다. int** someNumbers = malloc(arrayRows*sizeof(int*)); for (i = 0; i < arrayRows; i++) { someNumbers[i] = malloc(arrayColumns*sizeof(int)); } 분명히 이것은 실제로 정수로 구성된 여러 개의 1 차원 배열에 대한 포인터의 1 차원 배열을 만들고 "시스템"은 …

3
왜 GCC는 거의 동일한 C 코드에 대해 이렇게 완전히 다른 어셈블리를 생성합니까?
최적화 된 ftol함수를 작성하는 동안 에서 매우 이상한 동작을 발견했습니다 GCC 4.6.1. 먼저 코드를 보여 드리겠습니다 (명확하게하기 위해 차이점을 표시했습니다). fast_trunc_one, C : int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) & 0xff); sign = …

8
brk () 시스템 호출은 무엇을합니까?
리눅스 프로그래머 매뉴얼에 따르면 : brk () 및 sbrk ()는 프로세스 데이터 세그먼트의 끝을 정의하는 프로그램 중단 위치를 변경합니다. 여기서 데이터 세그먼트는 무엇을 의미합니까? 데이터 세그먼트 또는 데이터, BSS 및 힙이 결합 되었습니까? 위키에 따르면 : 때때로 데이터, BSS 및 힙 영역을 통칭하여 "데이터 세그먼트"라고합니다. 데이터 세그먼트의 크기를 변경할 이유가 …
184 c  linux  unix  memory-management  brk 

16
C 파일을 한 줄씩 읽습니다.
파일에서 한 줄을 읽으려면이 함수를 작성했습니다. const char *readLine(FILE *file) { if (file == NULL) { printf("Error: file pointer is null."); exit(1); } int maximumLineLength = 128; char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength); if (lineBuffer == NULL) { printf("Error allocating memory for line buffer."); exit(1); } char ch = …
184 c  file-io  line  std 


8
인수 수에 대한 매크로 오버로드
나는 두 매크로가 FOO2와를 FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... FOO다음과 같이 새 매크로를 정의하고 싶습니다 . #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) 그러나 매크로는 여러 인수에 과부하가 걸리지 않기 때문에 작동하지 않습니다. 수정하지 않고 FOO2및 FOO3매크로 정의하는 몇 가지 방법이있다 FOO(사용 __VA_ARGS__파견 같은 효과를 얻을 수있는 다른 나) …
183 c  macros  c-preprocessor 


2
C99 '제한'키워드의 현실적인 사용법?
나는 몇 가지 문서와 질문 / 답변을 탐색하면서 언급 된 것을 보았습니다. 기본적으로 프로그래머가 포인터가 다른 곳을 가리키는 데 사용되지 않는다는 약속이라고 간략히 설명했습니다. 누구나 실제로 이것을 사용할 가치가있는 현실적인 사례를 제공 할 수 있습니까?
183 c  gcc  c99  restrict-qualifier 



8
문자열을 올바르게 비교하려면 어떻게합니까?
사용자가 단어 나 문자를 입력하고 저장 한 다음 사용자가 다시 입력 할 때까지 인쇄하여 프로그램을 종료 할 수있는 프로그램을 얻으려고합니다. 내 코드는 다음과 같습니다 #include <stdio.h> int main() { char input[40]; char check[40]; int i=0; printf("Hello!\nPlease enter a word or character:\n"); gets(input); printf("I will now repeat this until you type …
182 c  string  strcmp 

6
Objective-C에서 ENUM을 어떻게 정의하고 사용합니까?
아래에 표시된 것처럼 구현 파일에 열거 형을 선언하고 내 인터페이스에서 해당 유형의 변수를 PlayerState thePlayerState로 선언했습니다. 내 방법에서 변수를 사용했습니다. 그러나 선언되지 않았다는 오류가 발생합니다. 내 메소드에서 PlayerState 유형의 변수를 올바르게 선언하고 사용하는 방법은 무엇입니까? : .m 파일에서 @implementation View1Controller typedef enum playerStateTypes { PLAYER_OFF, PLAYER_PLAYING, PLAYER_PAUSED } PlayerState; .h …
180 iphone  objective-c  c 




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