«c» 태그된 질문

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

12
C의 문자열에 하위 문자열이 있는지 확인
문자열에 C의 하위 문자열이 포함되어 있는지 확인하려고합니다. char *sent = "this is my sample example"; char *word = "sample"; if (/* sentence contains word */) { /* .. */ } string::findC ++ 대신 사용할 것이 무엇입니까 ?
169 c  string 

13
C의 크기가 "int"2 바이트 또는 4 바이트입니까?
C의 정수 변수가 2 바이트 또는 4 바이트를 차지합니까? 그것이 의존하는 요인은 무엇입니까? 대부분의 교과서에서는 정수 변수가 2 바이트를 차지한다고 말합니다. 그러나 정수 배열의 연속 주소를 인쇄하는 프로그램을 실행하면 4의 차이가 표시됩니다.
168 c  int  byte 


6
C에서 어떤 사람들은 포인터를 해제하기 전에 포인터를 던지는 이유는 무엇입니까?
나는 오래된 코드베이스에서 일하고 있으며 free ()의 모든 호출은 인수에 캐스트를 사용합니다. 예를 들어 free((float *)velocity); free((float *)acceleration); free((char *)label); 여기서 각 포인터는 해당하는 (및 일치하는) 유형입니다. 나는 이것에 전혀 아무런 의미가 없다. 매우 오래된 코드이므로 K & R인지 궁금합니다. 그렇다면 실제로이를 필요로했던 오래된 컴파일러를 지원하고 싶기 때문에 제거하고 싶지 …
167 c  pointers  casting 

9
휘발성이 멀티 스레드 C 또는 C ++ 프로그래밍에서 유용하지 않은 이유는 무엇입니까?
최근에 게시 한이 답변 에서 입증 된 것처럼 volatile멀티 스레드 프로그래밍 컨텍스트 의 유틸리티 (또는 부족)에 대해 혼란스러워하는 것 같습니다 . 내 이해는 이것입니다 : 변수가 액세스하는 코드 조각의 제어 흐름 외부에서 변수가 변경 될 때마다 변수는로 선언되어야합니다 volatile. 다른 스레드에 의해 수정 된 신호 처리기, I / O 레지스터 …

9
Windows (Visual C)에서 unistd.h를 대체합니까?
Unix 용으로 작성된 비교적 간단한 콘솔 프로그램을 Windows 플랫폼 ( Visual C ++ 8.0 ) 으로 이식하고 있습니다. 모든 소스 파일에 존재하지 않는 "unistd.h"가 포함되어 있습니다. 이를 제거하면 '무작위', '무작위'및 'getopt'의 프로토 타입 누락에 대한 불만이 발생합니다. 나는 임의의 함수를 대체 할 수 있다는 것을 알고 있으며 getopt 구현을 찾거나 …
165 c++  c  windows  portability  unistd.h 

18
가장 빠른 하위 문자열 검색 알고리즘은 무엇입니까?
좋아, 나는 바보처럼 들리지 않는다. 나는 문제 / 요구 사항을보다 명확하게 언급 할 것이다. 바늘 (패턴)과 건초 더미 (검색 할 텍스트)는 모두 C 스타일의 널 종료 문자열입니다. 길이 정보가 제공되지 않습니다. 필요한 경우 계산해야합니다. 함수는 첫 번째 일치 항목에 대한 포인터를 반환해야합니다 NULL. 실패 사례는 허용되지 않습니다. 즉, 일정하지 않은 …
165 c  algorithm  string  substring 

4
왜 i ++가 있습니까? 나는--; 서로 직후?
1997 년에 출시 된 nmap 의 소스 코드를 살펴 보니이 코드 섹션이 조금 이상해 보입니다. int i=0, j=0,start,end; char *expr = strdup(origexpr); ports = safe_malloc(65536 * sizeof(short)); i++; /* <<<<<< */ i--; /* <<<<<< */ for(;j < exlen; j++) if (expr[j] != ' ') expr[i++] = expr[j]; expr[i] = '\0'; …
164 c  nmap 

20
“for (;;)”가“while (TRUE)”보다 빠릅니까? 그렇지 않은 경우 사람들은 왜 그것을 사용합니까?
for (;;) { //Something to be done repeatedly } 나는 이런 종류의 일이 많이 사용되는 것을 보았지만 다소 이상하다고 생각합니다 ... 말하기 while(true)또는 그 선을 따라 뭔가 가 더 명확하지 않습니까? 나는 (많은 프로그래머가 암호 코드에 의지하는 이유와 같이) 이것이 작은 마진이 더 빠르다고 추측하고 있습니까? 왜, 그리고는 정말 가치? …


4
경고 : 내장 함수 'xyz'의 호환되지 않는 암시 적 선언
몇 가지 바이너리를 컴파일 할 때 다음과 같은 경고가 나타납니다. warning: incompatible implicit declaration of built-in function ‘strcpy’ warning: incompatible implicit declaration of built-in function ‘strlen’ warning: incompatible implicit declaration of built-in function ‘exit’ 이 문제를 해결하기 위해 추가했습니다. #include <stdlib.h> 다음 플래그로 컴파일하는 것 외에도이 경고와 관련된 C 파일의 …
164 c  gcc  gcc-warning 


5
gcc의 __attribute __ ((packed)) / #pragma pack이 안전하지 않습니까?
C에서 컴파일러는 각 멤버가 올바르게 정렬되도록 멤버 사이 또는 마지막 멤버 뒤에 패딩 바이트를 삽입하여 선언 된 순서대로 구조체 멤버를 배치합니다. gcc는 언어 확장을 제공하는데 __attribute__((packed)), 이는 컴파일러에게 패딩을 삽입하지 않도록 지시하여 구조체 멤버가 잘못 정렬되도록합니다. 예를 들어, 시스템에서 일반적으로 모든 int객체에 4 바이트 정렬 __attribute__((packed))이 필요한 경우 int구조체 멤버가 …
164 c  gcc  pragma-pack 

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


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