«c» 태그된 질문

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

2
유닉스 도메인 소켓 VS 명명 된 파이프?
소켓이라는 이름의 유닉스를 살펴본 후 파이프라는 이름으로 생각했습니다. 나는 이름 파이프를 보았고 큰 차이를 보지 못했습니다. 나는 그들이 다르게 초기화되는 것을 보았지만 그것이 내가 알아 차리는 유일한 것입니다. 둘 다 C 쓰기 / 읽기 기능을 사용하고 AFAIK와 유사하게 작동합니다. 유닉스 도메인 소켓과 명명 된 파이프의 차이점은 무엇입니까? 언제 다른 하나를 …
122 c  linux 

3
작동해야하는 스위치에서 케이스를 건너 뛰기 위해 if (0)을 사용하고 있습니까?
C ++ switch 문에서 두 가지 경우가 모두 세 번째 경우로 넘어 가고 싶은 상황이 있습니다. 특히 두 번째 경우는 세 번째 경우로 넘어 가고 첫 번째 경우도 두 번째 경우 를 통과 하지 않고 세 번째 경우로 넘어갑니다 . 나는 멍청한 생각을 가지고 시도해 보았고 효과가있었습니다! 나는 두 번째의 …

8
꼬리 재귀는 정확히 어떻게 작동합니까?
나는 꼬리 재귀가 어떻게 작동하는지, 그리고 그것과 정상적인 재귀의 차이점을 거의 이해합니다. 나는 단지 그 이유를 이해하지 않습니다 그것의 반환 주소를 기억하기 위해 스택을 필요로한다. // tail recursion int fac_times (int n, int acc) { if (n == 0) return acc; else return fac_times(n - 1, acc * n); } …

13
O (n) 시간 및 O (1) 공간에서 중복 찾기
입력 : 0에서 n-1까지의 요소를 포함하는 n 요소의 배열이 주어지며,이 숫자 중 임의의 횟수가 나타납니다. 목표 : O (n)에서 이러한 반복되는 숫자를 찾고 일정한 메모리 공간 만 사용합니다. 예를 들어, n이 7이고 배열이 {1, 2, 3, 1, 3, 0, 6}이라고합시다. 대답은 1 & 3이되어야합니다. 여기에서 비슷한 질문을 확인했지만 대답은 HashSet기타 …
121 c++  c  algorithm 

23
사람들이 C / C ++에서하는 부당한 가정을 보여주는 교육 도구에는 무엇이 포함됩니까?
저는 초보자 (및 중급) 프로그래머가 C, C ++ 및 플랫폼에서 정당하지 않은 가정을 인식하고 이의를 제기하는 데 도움이되는 SO를위한 작은 교육 도구를 준비하고 싶습니다. 예 : "정수를 둘러싼 다" "모든 사람이 ASCII를 가지고 있습니다." "함수 포인터를 void *에 저장할 수 있습니다." 저는 소규모 테스트 프로그램이 다양한 플랫폼에서 실행될 수 있다고 …


21
널 포인터에 주소 0이 사용되는 이유는 무엇입니까?
C (또는 C ++)에서 포인터는 값이 0이면 특별합니다. 포인터를 다시 해제하는 것은 위험하지 않기 때문에 메모리를 해제 한 후 포인터를 0으로 설정하는 것이 좋습니다. malloc을 호출 할 때 메모리를 얻을 수없는 경우 값이 0 인 포인터를 반환합니다. if (p != 0)전달 된 포인터가 유효한지 확인하기 위해 항상 사용 합니다. 그러나 …
121 c++  c  memory  pointers 

6
소켓 connect () 대 bind ()
connect()및 bind()시스템 호출 모두 소켓 파일 설명자를 주소 (일반적으로 ip / 포트 조합)에 '연결'합니다. 그들의 프로토 타입은 다음과 같습니다. int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 과 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 두 통화의 정확한 차이점은 무엇입니까? 때 하나를 사용해야 connect()언제 bind()? 특히 일부 …

3
C / C ++ 매크로 문자열 연결
#define STR1 "s" #define STR2 "1" #define STR3 STR1 ## STR2 STR3 == "s1"을 연결하는 것이 가능합니까? args를 다른 매크로 함수에 전달하여이를 수행 할 수 있습니다. 그러나 직접적인 방법이 있습니까?
121 c++  c  c-preprocessor 

5
C ++ 11이 C99로 지정된 이니셜 라이저 목록을 지원하지 않는 이유는 무엇입니까? [닫은]
닫힘 . 이 질문은 의견 기반 입니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 이 질문 개선 치다: struct Person { int height; int weight; int age; }; int …
121 c++  c  c++11  initialization  c99 


2
데이터 구조가 "침투 적"이라는 것은 무엇을 의미합니까?
목록 및 스택과 같은 데이터 구조를 설명 하는 데 사용되는 침입 이라는 용어를 보았지만 그 의미는 무엇입니까? 침입 형 데이터 구조의 코드 예제를 제공 할 수 있으며 비침 입형 데이터 구조와 어떻게 다른가? 또한 왜 방해가되지 않는 (또는 방해가되지 않는) 이유는 무엇입니까? 이점은 무엇입니까? 단점은 무엇입니까?

6
.bss 세그먼트가 필요한 이유는 무엇입니까?
내가 아는 것은 전역 및 정적 변수가 .data세그먼트에 저장 되고 초기화되지 않은 데이터가 .bss세그먼트에 있다는 것입니다. 내가 이해하지 못하는 것은 왜 초기화되지 않은 변수에 대한 전용 세그먼트가 있다는 것입니까? 초기화되지 않은 변수에 런타임에 할당 된 값이있는 경우 변수가 여전히 .bss세그먼트에만 존재 합니까? 다음 프로그램 a에서 .data세그먼트 b에 있고 .bss세그먼트에 있습니다. …

7
정수 대 바닥으로 캐스트
이것들 사이에 차이점이 있습니까? float foo1 = (int)(bar / 3.0); float foo2 = floor(bar / 3.0); 두 경우 모두 동일한 결과가 있음을 이해합니다. 컴파일 된 코드에 차이가 있습니까?
120 c++  c  floating-point 

10
2 차원 배열에 대한 포인터 만들기
정적 2 차원 배열에 대한 포인터가 필요합니다. 어떻게하나요? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } 다음과 같은 모든 종류의 오류가 발생합니다. 경고 : 호환되지 않는 포인터 유형에서 할당 아래 첨자 값은 배열도 포인터도 아닙니다. 오류 : 유연한 배열 구성원의 잘못된 사용
120 c  arrays  pointers 

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