«c» 태그된 질문

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

11
단일 인수 (변환 지정자 없음)가있는 printf가 더 이상 사용되지 않는 이유는 무엇입니까?
내가 읽고있는 책 printf에서 단일 인수 (변환 지정자 없음)가 더 이상 사용되지 않는다고 기록되어 있습니다. 대체하는 것이 좋습니다 printf("Hello World!"); 와 puts("Hello World!"); 또는 printf("%s", "Hello World!"); 누군가가 왜 printf("Hello World!");잘못된 것인지 말해 줄 수 있습니까 ? 책에 취약점이 있다고 기록되어 있습니다. 이 취약점은 무엇입니까?

7
C에서 배열 초기화에 대한 혼란
C 언어에서 다음과 같이 배열을 초기화하면 : int a[5] = {1,2}; 그러면 명시 적으로 초기화되지 않은 배열의 모든 요소는 암시 적으로 0으로 초기화됩니다. 그러나 다음과 같이 배열을 초기화하면 : int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); 산출: 1 0 1 0 0 이해가 안되는데 왜 대신 …

7
C int 배열을 0으로 재설정 : 가장 빠른 방법?
T myarray[100]with T = int, unsigned int, long long int 또는 unsigned long long int 가 있다고 가정하면 모든 내용을 0으로 재설정하는 가장 빠른 방법은 무엇입니까 (초기화뿐만 아니라 내 프로그램에서 내용을 여러 번 재설정) ? 아마도 memset과 함께? 같은 동적 배열에 대한 동일한 질문입니다 T *myarray = new T[100].
102 c++  c  arrays  memset 

2
"바이트 수"를 0으로 설정하여 memcpy () 및 memmove ()를 호출 할 수 있습니까?
나는 actully 이동에 아무것도 없을 때 내가 함께 복사 / 치료의 경우에 필요합니까 memmove()/memcpy() 에지의 경우와 같은 int numberOfBytes = ... if( numberOfBytes != 0 ) { memmove( dest, source, numberOfBytes ); } 또는 확인하지 않고 함수를 호출해야 int numberOfBytes = ... memmove( dest, source, numberOfBytes ); 이전 스 니펫의 …
102 c++  c  pointers  memcpy  memmove 

2
GCC -g 대 -g3 GDB 플래그 : 차이점은 무엇입니까?
gcc 또는 Clang으로 C 소스 코드를 컴파일 할 때 항상 -g플래그를 사용하여 gdb에 대한 디버깅 정보를 생성합니다. gcc -g -o helloworld helloworld.c 나는 어떤 사람들이 -g3대신 추천한다는 것을 알았습니다 . 플래그 -g와 -g3플래그 의 차이점은 무엇입니까 ? 또한 차이가 -g및 -ggdb?
102 c  debugging  gcc  gdb  clang 

4
C 코드에서 C ++ 라이브러리 사용
데이터 관리를위한 다양한 클래스를 제공하는 C ++ 라이브러리가 있습니다. 라이브러리의 소스 코드가 있습니다. 라이브러리를 C 코드와 C ++ 코드와 동시에 사용할 수 있도록 C 함수 호출을 지원하도록 C ++ API를 확장하고 싶습니다. GNU 도구 체인 (gcc, glibc 등)을 사용하고 있으므로 언어 ​​및 아키텍처 지원이 문제가되지 않습니다. 이것이 기술적으로 불가능한 이유가 …
102 c++  c  gcc  glibc 



24
웹 앱에 C를 사용하지 않는 이유는 무엇입니까?
오늘 아침 G-WAN을 접했을 때 몇 가지 다른 웹 서버를 살펴 보았습니다 . 내가 알기로는 C로 작성된 웹 서버이므로 웹 사이트 / 웹 앱을 C로 작성하여 사용해야합니다. 한 가지 분명한 이점은 G-WAN 사이트에서 제안하는 속도입니다. 그러나 포럼에서 G-WAN의 제작자는 웹 기반 앱에 C를 사용하지 않는 이유를 물었고 그것이 어려운 것 …
101 php  c  web-applications 

16
C ++를 사용하여 나노초 단위로 시간을 제공하는 타이머 기능
API가 값을 반환하는 데 걸린 시간을 계산하고 싶습니다. 그러한 행동에 걸리는 시간은 나노초의 공간입니다. API가 C ++ 클래스 / 함수이므로 timer.h를 사용하여 동일하게 계산합니다. #include <ctime> #include <cstdio> using namespace std; int main(int argc, char** argv) { clock_t start; double diff; start = clock(); diff = ( std::clock() - start …
101 c++  c  timer 

4
uint32_t 및 size_t에 대한 printf 형식 지정자
나는 다음이있다 size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); 컴파일 할 때 다음 경고가 표시됩니다. format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’ 부목을 사용하여 이것을 실행했을 때 다음과 같은 결과를 얻었습니다. Format argument 1 …
101 c  printf 

1
C 집계 이니셜 라이저에서 [N… M]은 무엇을 의미합니까?
에서 sys.c의 라인 123 : void *sys_call_table[__NR_syscalls] = { [0 ... __NR_syscalls-1] = sys_ni_syscall, #include <asm/unistd.h> }; sys_call_table배열에 대한 일반적인 포인터입니다. 그러나 표기법은 무엇입니까? [0 ... __NR_syscalls-1] 무엇입니까 ...? 편집 : 내가 여기에 또 다른 C의 트릭을 배웠 #include <asm/unistd.h>됩니다 전처리 및 그 내용으로 대체하고 할당 [0 ... _NR_syscalls-1].
101 c  linux  kernel 


13
C에서 catch 문 시도
나는 오늘 다른 언어에 존재하는 try / catch 블록에 대해 생각하고있었습니다. 잠시 동안 검색했지만 결과가 없습니다. 내가 아는 바에 따르면 C에서 try / catch와 같은 것은 없습니다. 그러나 그것들을 "시뮬레이션"하는 방법이 있습니까? 물론, assert와 다른 트릭이 있지만 try / catch와 같은 것은 없습니다. 감사합니다
101 c 

7
C 형식의 문자열 만들기 (인쇄하지 않음)
문자열을 받아들이는 함수가 있습니다. void log_out(char *); 그것을 호출 할 때 다음과 같이 형식이 지정된 문자열을 즉석에서 만들어야합니다. int i = 1; log_out("some text %d", i); ANSI C에서 어떻게해야합니까? 오직, sprintf()int를 반환하기 때문에 이것은 적어도 3 개의 명령을 작성해야 함을 의미합니다. char *s; sprintf(s, "%d\t%d", ix, iy); log_out(s); 단축 할 …
101 c  string 

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