«c» 태그된 질문

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

7
표준위원회가 관심을 갖는 이국적인 아키텍처
C 및 C ++ 표준은 다른 특성을 가진 아키텍처가있는 경우 표준 준수 컴파일러를 작성하는 것이 매우 어렵거나 불가능하기 때문에 언어 구현 정의의 여러 측면을 남겨둔다는 것을 알고 있습니다. 나는 40 년 전에 모든 컴퓨터가 고유 한 사양을 가지고 있다는 것을 알고 있습니다. 그러나 현재 사용되는 아키텍처는 다음과 같습니다. CHAR_BIT != …
154 c++  c  architecture 

5
Valgrind에 의해 여전히 도달 가능한 누출 감지
이 블록에서 언급 된 모든 기능은 라이브러리 기능입니다. 이 메모리 누수를 어떻게 해결할 수 있습니까? " 여전히 접근 가능 "범주 아래에 나열됩니다 . (매우 유사하지만 크기가 다른 4 개가 더 있습니다) 630 bytes in 1 blocks are still reachable in loss record 5 of 5 at 0x4004F1B: calloc (vg_replace_malloc.c:418) by …
154 c  pthreads  valgrind 


6
iPhone에서 Objective-C로 메소드 이름 NSLog
현재, 우리는 클래스 이름과 로그의 소스 라인 번호를 출력하는 확장 로그 메커니즘을 정의하고 있습니다. #define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \ __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) 예를 들어, NCLog (@ "Hello world"); 출력은 다음과 같습니다. <ApplicationDelegate:10>Hello world 이제 메소드 이름을 다음과 같이 로그 아웃하고 싶습니다. <ApplicationDelegate:applicationDidFinishLaunching:10>Hello world 따라서 어떤 …

11
~ x + ~ y == ~ (x + y)는 항상 거짓입니까?
이 코드는 항상 거짓으로 평가됩니까? 두 변수 모두 2의 보수 부호있는 정수입니다. ~x + ~y == ~(x + y) 조건을 만족하는 숫자가 있어야한다고 생각합니다. 나는 사이의 숫자를 테스트하려 -5000하고 5000있지만, 결코 이루어지지 평등. 조건에 대한 해를 찾기 위해 방정식을 설정하는 방법이 있습니까? 하나를 다른 것으로 바꾸면 프로그램에 교활한 버그가 발생합니까?

9
C에서 괄호는 스택 프레임 역할을합니까?
새 중괄호 세트 내에 변수를 작성하면 해당 변수가 닫는 중괄호의 스택에서 튀어 나왔습니까? 아니면 함수가 끝날 때까지 중단됩니까? 예를 들면 다음과 같습니다. void foo() { int c[100]; { int d[200]; } //code that takes a while return; } 윌 d동안 메모리를 복용 할 code that takes a while부분?
153 c  memory  stack 

9
C에서 "콜백"이란 무엇이며 어떻게 구현됩니까?
내가 읽은 독서에서 Core Audio는 콜백 (및 C ++에 크게 의존하지만 다른 이야기입니다). 작업을 수행하기 위해 다른 함수에서 반복적으로 호출하는 함수를 설정하는 개념 (일종)을 이해합니다. 나는 그들이 어떻게 설정되고 실제로 어떻게 작동하는지 이해하지 못합니다. 모든 예가 이해 될 것이다.
153 c  callback 

14
C / C ++에서 NULL 포인터 확인 [닫기]
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 이 질문을 개선하십시오 최근 코드 검토에서 기고자는 NULL포인터에 대한 모든 검사가 다음과 같은 방식으로 수행되도록 노력하고 있습니다. int …

13
C에서 함수형 프로그래밍을위한 도구는 무엇입니까?
나는 C ( C ++가 아닌) 에서 함수형 프로그래밍을 수행하는 방법에 대해 최근 많이 생각했습니다 . 분명히 C는 절차 적 언어이며 실제로 함수형 프로그래밍을 기본적으로 지원하지 않습니다. 함수형 프로그래밍 구문을 언어에 추가하는 컴파일러 / 언어 확장이 있습니까? GCC는 중첩 함수 를 언어 확장으로 제공합니다 . 중첩 함수는 상위 스택 프레임에서 …

13
num ++가 'int num'의 원자가 될 수 있습니까?
일반적 속 int num, num++(나 ++num), 판독 - 수정 - 기록 동작으로, 인 원자 없다 . 그러나 종종 GCC 와 같은 컴파일러 가 다음 코드를 생성하는 것을 종종 볼 수 있습니다 ( here 시도 ). num++하나의 명령에 해당하는 5 번 라인 이이 경우에 num++ 원자 라고 결론 지을 수 있습니까? …

8
C를 사용하여 배열 반환
나는 C를 처음 접했고 배열을 다루는 메소드에 대한 도움이 필요하다. Java 프로그래밍에서 왔으므로 int [] method()배열을 반환하기 위해 말할 수있었습니다 . 그러나 C를 사용하면 배열을 반환 할 때 포인터를 사용해야한다는 것을 알았습니다. 새로운 프로그래머이기 때문에, 내가 살펴본 많은 포럼 에서조차도 이것을 전혀 이해하지 못합니다. 기본적으로 C에서 char 배열을 반환하는 메서드를 …
153 c  arrays  pointers  char 

2
C 전처리 기와 두 번 연결하고“arg ## _ ## MACRO”와 같이 매크로를 확장하는 방법은 무엇입니까?
일부 함수의 이름이 다음과 같은 매크로를 사용하여 특정 매크로 변수의 값에 의존하는 프로그램을 작성하려고합니다. #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); 불행히도, 매크로 NAME()는 그것을 int some_function_VARIABLE(int a); 오히려 int some_function_3(int a); 그래서 이것은 분명히 잘못된 길입니다. 다행스럽게도 VARIABLE에 대한 가능한 값의 수가 적기 …

4
“#define _GNU_SOURCE”는 무엇을 의미합니까?
오늘 나는 basename()함수 를 사용해야했고 man 3 basename( here )는 나에게 이상한 메시지를 주었다. 노트 이 두 가지 다른 버전입니다 기본 이름은 () 더 - POSIX의 버전이 위의 설명과 GNU 버전 한 후 도착, #define _GNU_SOURCE #include <string.h> 이것이 #define _GNU_SOURCE의미하는 바가 궁금 합니다. GNU 관련 라이센스로 작성한 코드 가 …
152 c  posix  gnu 

22
C 코드에서 오류 처리
C 라이브러리에서 일관된 방식으로 오류 처리 오류와 관련하여 "모범 사례"는 무엇이라고 생각하십니까? 내가 생각한 두 가지 방법이 있습니다. 항상 오류 코드를 반환하십시오. 일반적인 기능은 다음과 같습니다. MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize); 항상 오류 포인터 접근 방식을 제공합니다. int getObjectSize(MYAPIHandle h, MYAPI_ERROR* returnedError); 첫 번째 접근 방식을 사용할 때 오류 처리 …
152 c  error-handling 


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