«c» 태그된 질문

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

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 

6
소켓 라이브러리에서 recv를 호출 할 때 recv 버퍼의 크기는 얼마입니까?
C의 소켓 라이브러리에 대해 몇 가지 질문이 있습니다. 다음은 내 질문에서 참조 할 코드 스 니펫입니다. char recv_buffer[3000]; recv(socket, recv_buffer, 3000, 0); recv_buffer를 얼마나 크게 만들 수 있습니까? 3000을 사용하고 있지만 임의적입니다. recv()버퍼보다 큰 패킷을 받으면 어떻게됩니까 ? recv를 다시 호출하지 않고 전체 메시지를 받았는지, 수신 할 것이 없을 때 …
129 c  sockets  buffer  recv 


15
C 프로그래밍에서 void 포인터의 개념
C 프로그래밍 언어에서 타입 캐스팅없이 void 포인터를 역 참조 할 수 있습니까? 또한 포인터를 받아서 void 포인터에 저장할 수있는 함수를 일반화하는 방법이 있습니까? 그리고 그 void 포인터를 사용하여 일반화 된 함수를 만들 수 있습니까? 예를 들어 : void abc(void *a, int b) { if(b==1) printf("%d",*(int*)a); // If integer pointer is …
129 c  void-pointers 

11
scanf를 사용하여 공백을 어떻게 입력 할 수 있습니까?
다음 코드를 사용하십시오. char *name = malloc(sizeof(char) + 256); printf("What is your name? "); scanf("%s", name); printf("Hello %s. Nice to meet you.\n", name); 그들은 같은 공간의 이름을 입력 할 때 사용자는 자신의 이름을 입력 할 수 있지만 Lucas Aardvark, scanf()이후 모든 전원 단지 상처 Lucas. scanf()공백 을 허용 하는 방법
129 c  string  printf  scanf  whitespace 

9
malloc / free / new / delete에서 컴파일러는 언제 그리고 왜 메모리를 0xCD, 0xDD 등으로 초기화합니까?
컴파일러가 때로는 0xCDand와 같은 특정 패턴으로 메모리를 초기화한다는 것을 알고 0xDD있습니다. 내가 알고 싶은 것은 언제 그리고 왜 이런 일이 발생 하는지 입니다. 언제 사용 된 컴파일러에만 해당됩니까? 수행 malloc/new및 free/delete이와 관련하여 같은 방법으로 사용할 수 있습니까? 특정 플랫폼입니까? Linux또는 같은 다른 운영 체제에서도 발생 VxWorks합니까? 왜 내 이해는 Win32디버그 …

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 

12
파이썬을 기계 코드로 컴파일하는 것이 가능합니까?
파이썬을 (중간 C 표현을 통해) 머신 코드로 컴파일하는 것이 얼마나 가능합니까? 아마도 그것은 파이썬 런타임 라이브러리에 연결될 필요가있을 것이며, 파이썬 자체 인 파이썬 표준 라이브러리의 어떤 부분도 컴파일 (및 링크)되어야 할 것입니다. 또한 표현식의 동적 평가를 원한다면 Python 인터프리터를 번들로 제공해야하지만, 이것을 허용하지 않은 Python의 하위 세트는 여전히 유용 할 …
128 python  c  linker  compilation 

30
열거 형 변수를 문자열로 변환하는 방법은 무엇입니까?
열거 형 유형의 변수 값을 표시하기 위해 printf를 만드는 방법은 무엇입니까? 예를 들어 : typedef enum {Linux, Apple, Windows} OS_type; OS_type myOS = Linux; 내가 필요한 것은 printenum(OS_type, "My OS is %s", myOS); 정수가 아닌 문자열 "Linux"를 표시해야합니다. 먼저 값 인덱스 문자열 배열을 만들어야한다고 가정합니다. 그러나 그것이 가장 아름다운 방법인지는 …
128 c++  c  preprocessor  ansi-c 

10
포인터 표현식 : * ptr ++, * ++ ptr 및 ++ * ptr
최근에 나는 혼자서 이해할 수없는이 문제를 발견했다. 이 세 가지 표현은 정말로 무엇을 의미합니까? *ptr++ *++ptr ++*ptr 나는 Ritchie를 시도했다. 그러나 불행히도 그가이 세 가지 작전에 대해 말한 것을 따를 수 없었습니다. 나는 그것들이 모두 포인터 / 가리키는 값을 증가시키기 위해 수행된다는 것을 알고 있습니다. 평가의 우선 순위와 순서에 대해 …
128 c++  c  pointers  increment 

7
C / C ++에서 0 크기 배열을 정의하면 어떻게됩니까?
궁금한 점 int array[0];은 코드에서 길이가 0 인 배열 을 정의하면 실제로 어떻게됩니까 ? GCC는 전혀 불평하지 않습니다. 샘플 프로그램 #include <stdio.h> int main() { int arr[0]; return 0; } 설명 실제로 Darhazer의 의견에서 가변 길이처럼 지적되는 대신 길이가 0 인 배열이 이런 식으로 초기화되었는지 알아 내려고 노력하고 있습니다. 나는 …
127 c++  c  arrays 

3
동일한 소켓에서 send / recv에 대한 병렬 호출이 유효합니까?
하나의 스레드에서 send를 호출하고 동일한 소켓의 다른 스레드에서 recv를 호출 할 수 있습니까? 동일한 소켓의 다른 스레드에서 여러 전송을 병렬로 호출 할 수 있습니까? 좋은 디자인은 이것을 피해야한다는 것을 알고 있지만 이러한 시스템 API의 작동 방식은 확실하지 않습니다. 나는 또한 좋은 문서를 찾을 수 없다. 방향에 대한 포인터가 도움이 될 …
127 c  networking  sockets 



5
Python (및 Python C API) : __new__ 및 __init__
내가 묻는 질문은 파이썬에서 __new__ 및 __init__을 사용 하는 것과 중복되는 것 같습니다 . 그러나 그럼에도 불구 __new__하고와 의 실제 차이점이 정확히 무엇인지는 여전히 명확하지 않습니다 __init__. __new__객체 생성과 __init__객체 초기화를 위해 서두르 기 전에 분명히하자 . 사실, 우리가 배치를 새로 배치 한 C ++에서 경험을 가지고 있기 때문에 객체 …
126 python  c  python-c-api 

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