«c89» 태그된 질문


8
C에서 변수 선언 배치
나는 C에서 모든 변수가 함수의 시작 부분에 선언되어야한다고 생각했습니다. C99에서 규칙은 C ++에서와 동일하지만 C89 / ANSI C에 대한 변수 선언 배치 규칙은 무엇입니까? 다음 코드는 gcc -std=c89및로 성공적으로 컴파일됩니다 gcc -ansi. #include <stdio.h> int main() { int i; for (i = 0; i < 10; i++) { char c …
129 c  declaration  c89 

3
아래 프로그램은 C89 모드에서 컴파일 할 때`C89`를, C99 모드에서 컴파일 할 때`C99`를 어떻게 출력합니까?
웹 에서이 C 프로그램을 찾았습니다. #include <stdio.h> int main(){ printf("C%d\n",(int)(90-(-4.5//**/ -4.5))); return 0; } 이 프로그램의 흥미로운 점은 C89 모드에서 컴파일되어 실행될 C89때 인쇄 되고 C99 모드에서 컴파일되고 실행될 때 인쇄 C99됩니다. 그러나이 프로그램이 어떻게 작동하는지 알 수 없습니다. printf위의 프로그램에서 두 번째 주장이 어떻게 작동 하는지 설명 할 수 …
128 c  printf  comments  c99  c89 

5
C, C99, ANSI C 및 GNU C의 차이점은 무엇입니까?
저는 codechef에서 프로그래밍 연습을 시작했고 C와 C99 의 차이로 인해 혼란 스러웠습니다 . 여기서 C는 무엇을 의미합니까? C89입니까? 이 제출 의 하단에있는 언어를 확인하십시오 . C와 C99를 모두 포함합니다. 인터넷에서 GNU C라는 것을 발견했습니다. 리눅스 / 유닉스 시스템에 다른 C가 있습니까? ANSI의 C 표준을 준수합니까? 나는 또한 몇몇 장소에서 "C99 …
122 c  gcc  c99  c89  ansi-c 

8
"구조 해킹"은 기술적으로 정의되지 않은 동작입니까?
내가 묻는 것은 잘 알려진 "구조체의 마지막 멤버가 가변 길이를 가짐"트릭입니다. 다음과 같이 진행됩니다. struct T { int len; char s[1]; }; struct T *p = malloc(sizeof(struct T) + 100); p->len = 100; strcpy(p->s, "hello world"); 구조체가 메모리에 배치되는 방식으로 인해 필요한 것보다 큰 블록 위에 구조체를 오버레이하고 마지막 멤버를 …

3
PDF 형식의 C89 / C90 표준은 어디에서 찾을 수 있습니까?
C89 / C90 표준 의 무료 사본 버전을 찾고 있지만 어디에서도 찾을 수 없습니다! 왜 찾기가 그렇게 어렵습니까? C99 및 C11 표준은 인터넷에서 쉽게 구할 수 있습니다. 스택 오버플로 질문에서도 현재 C 또는 C ++ 표준 문서는 어디에서 찾을 수 있습니까? 그리고 C Standard, Obtaining the Standard 에는 내가 찾고있는 …
87 c  ansi  c89 

10
왜 strcpy 대신 strncpy를 사용해야합니까?
편집 : 예제에 대한 소스를 추가했습니다. 내가 건너 온 이 예 : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'\n", destination); return_string = strcpy(destination, …

30
임베디드 개발을 위해 C ++ 대신 C를 사용하는 이유가 있습니까?
질문 하드웨어 C ++ 및 C89에 두 개의 컴파일러가 있습니다. 클래스와 함께 C ++를 사용하는 것에 대해 생각하고 있지만 (vtables를 피하기 위해) 다형성이 없습니다. C ++를 사용하고 싶은 주된 이유는 다음과 같습니다. 매크로 정의 대신 "인라인"함수를 사용하는 것을 선호합니다. 접두사가 코드를 복잡하게 만들 때 네임 스페이스를 사용하고 싶습니다. 주로 템플릿과 …
81 c++  c  embedded  c89 

4
두 개의 NULL 포인터를 빼는 동작이 정의되어 있습니까?
무효가 아닌 포인터 변수 두 개가 모두 NULL가치 가있는 경우 정의 된 (C99 및 / 또는 C ++ 98에 따라) 차이가 있습니까? 예를 들어 다음과 같은 버퍼 구조가 있다고 가정합니다. struct buf { char *buf; char *pwrite; char *pread; } ex; 말, ex.buf배열 또는 일부 malloc으로 할당 한 메모리를 가리키는. …
78 c++  c  c99  c89 

4
이 함수가 올바른 문자열 길이를 반환하는 이유는 무엇입니까? (char 포인터 늘리기)
문자열의 문자 수를 계산하는 함수입니다. int str_len(const char* s) { int i = 0; while(*(s++)) { i++; } return i; } 이것이 올바른 길이를 반환하는 이유는 무엇입니까? 간단한 String 으로이 함수를 호출한다고 가정 해 봅시다 "a". 그런 다음 swhile 루프에서 증가하므로 s및 의 값 i은 모두 0입니다.
12 c  while-loop  strlen  c89 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.