«c» 태그된 질문

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

11
#pragma pack 효과
누군가가 #pragma pack전 처리기 명령문이 무엇을하는지, 더 중요하게는 왜 그것을 사용하기를 원하는지 설명 할 수 있는지 궁금 했습니다. 나는 약간의 통찰력을 제공 하는 MSDN 페이지를 체크 아웃 했지만 경험이있는 사람들로부터 더 많은 것을 듣기를 희망했습니다. 더 이상 어디에서 찾을 수 없지만 코드에서 이전에 보았습니다.


8
uint8_t vs 부호없는 char
C에서 uint8_tover 를 사용하면 어떤 이점이 unsigned char있습니까? 거의 모든 시스템 uint8_t에서에 대한 typedef 라는 것을 알고 있습니다. unsigned char왜 사용합니까?
231 c  typedef 

30
메모리 누수가 괜찮습니까? [닫은]
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 이 질문을 개선하십시오 C 또는 C ++ 응용 프로그램에서 메모리 누수가 발생 하는 것이 허용 됩니까? 메모리의 …
231 c++  c  memory-leaks 

11
gets 함수가 왜 그렇게 사용되어서는 안되는 위험한가요?
gets()GCC로 함수 를 사용하는 C 코드를 컴파일하려고 하면 다음 경고가 표시됩니다. (.text + 0x34) : 경고 :`gets '함수는 위험하므로 사용해서는 안됩니다. 나는 이것이 스택 보호 및 보안과 관련이 있음을 기억하지만 정확히 왜 그런지 잘 모르겠습니다. 이 경고를 어떻게 제거 할 수 있으며 사용에 대한 경고가 표시되는 이유는 gets()무엇입니까? 경우 gets()매우 …
229 c  fgets  buffer-overflow  gets 

5
정수 나누기를 구현할 때 GCC가 왜 이상한 수의 곱셈을 사용합니까?
나는에 대해 읽어 봤는데 div및 mul조립 작업, 나는 C에서 간단한 프로그램을 작성하여 행동을보기로 결정했다 : 파일 division.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } 그리고 다음을 사용하여 어셈블리 언어 코드를 생성합니다. gcc -S division.c -O0 -masm=intel …



8
기본 포인터와 스택 포인터는 정확히 무엇입니까? 그들은 무엇을 지적합니까?
DrawSquare ()가 DrawLine ()을 호출하는 Wikipedia에서 온 이 예제를 사용 하면 , 이 다이어그램은 맨 아래에 높은 주소가 있고 맨 위에는 낮은 주소가 있습니다. 사람이 나를 설명 무엇을 할 수 ebp와 esp이러한 맥락에있다? 내가 본 것에서 스택 포인터는 항상 스택의 상단을 가리키고 기본 포인터는 현재 함수의 시작을 가리키는 것이라고 말하고 …
225 c++  c  assembly  x86 

10
범위를 벗어난 배열에 액세스하는 것이 얼마나 위험합니까?
범위를 벗어난 어레이에 액세스하는 것이 얼마나 위험합니까 (C)? 때로는 배열 외부에서 읽거나 (이제 프로그램의 다른 부분이나 그 이상으로 사용되는 메모리에 액세스한다는 것을 이해합니다) 또는 배열 외부의 인덱스로 값을 설정하려고합니다. 프로그램이 때때로 충돌하지만 때로는 실행되어 예기치 않은 결과 만 나타납니다. 이제 내가 알고 싶은 것은 이것이 얼마나 위험합니까? 프로그램이 손상되면 그렇게 …
221 c  arrays  memory 





11
C fopen vs 오픈
당신이 사용하고 싶은 어떤 이유 (구문 적 이유가 아닌 것)가 있습니까? FILE *fdopen(int fd, const char *mode); 또는 FILE *fopen(const char *path, const char *mode); 대신에 int open(const char *pathname, int flags, mode_t mode); Linux 환경에서 C를 사용할 때?
219 c  linux  unix  file-io  fopen 

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