«c» 태그된 질문

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



10
SIGPIPE를 방지하는 방법 (또는 올바르게 처리)
TCP 또는 로컬 UNIX 소켓에서 연결을 수락하고 간단한 명령을 읽고 명령에 따라 응답을 보내는 작은 서버 프로그램이 있습니다. 문제는 클라이언트가 때로는 대답에 관심이없고 일찍 빠져 나올 수 있으므로 해당 소켓에 쓰면 SIGPIPE가 발생하고 서버가 중단됩니다. 여기서 충돌을 방지하는 가장 좋은 방법은 무엇입니까? 줄의 다른 쪽이 여전히 읽고 있는지 확인하는 방법이 …
259 c  io  signals  broken-pipe  sigpipe 

12
C에서 화살표 연산자 (->) 사용법
"21 일 안에 C를 가르치십시오"라는 책을 읽고 있습니다 (이미 Java와 C #을 배웠으므로 훨씬 빠른 속도로 움직이고 있습니다). 나는 포인터에 관한 장을 읽고 있었고 ->(화살표) 연산자 는 설명없이 나타났습니다. 멤버와 함수를 호출하는 데 사용된다고 생각합니다 .(점 연산자와 동일하지만 멤버 대신 포인터). 그러나 나는 완전히 확신하지 못한다. 설명과 코드 샘플을 얻을 …
257 c  pointers  syntax 

3
malloc + memset이 calloc보다 느린 이유는 무엇입니까?
할당 된 메모리를 초기화한다는 점과 calloc는 다른 것으로 알려져 malloc있습니다. 을 사용 calloc하면 메모리가 0으로 설정됩니다. 를 사용 malloc하면 메모리가 지워지지 않습니다. 그래서 일상적인 작업에서는 +로 간주 calloc됩니다 . 덧붙여서, 재미로, 벤치 마크를 위해 다음 코드를 작성했습니다.mallocmemset 결과는 혼란 스럽다. 코드 1 : #include<stdio.h> #include<stdlib.h> #define BLOCK_SIZE 1024*1024*256 int main() …
256 c  malloc 

10
GCC를 사용하여 읽을 수있는 어셈블리를 생성 하시겠습니까?
내 C 소스 파일에서 GCC 를 사용 하여 니모닉 버전의 기계어 코드를 덤프하여 내 코드가 컴파일되는 것을 볼 수있는 방법이 궁금합니다 . Java 로이 작업을 수행 할 수는 있지만 GCC로는 방법을 찾지 못했습니다. 어셈블리에서 C 메서드를 다시 작성하려고 시도하고 GCC가 어떻게 작동하는지 보는 것이 큰 도움이됩니다.
256 c  gcc  assembly 

15
C와 C ++에서 연합의 목적
나는 이전에 편하게 노동 조합을 사용했다. 오늘 이 게시물을 읽었을 때 놀랐 으며이 코드를 알게되었습니다. union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // somewhere down …
254 c++  c  unions  type-punning 

11
왜 C에서 수학 라이브러리를 연결해야합니까?
C 프로그램을 포함 <stdlib.h>하거나 <stdio.h>C 프로그램에 포함시킬 경우 컴파일 할 때 이들을 링크 할 필요는 없지만 gcc를 <math.h>사용하여 에 링크해야 -lm합니다 (예 : gcc test.c -o test -lm 그 이유는 무엇입니까? 수학 라이브러리를 명시 적으로 링크해야하지만 다른 라이브러리는 아닌 이유는 무엇입니까?
254 c  compilation  math.h 



6
왜 0 <-0x80000000입니까?
아래에 간단한 프로그램이 있습니다. #include &lt;stdio.h&gt; #define INT32_MIN (-0x80000000) int main(void) { long long bal = 0; if(bal &lt; INT32_MIN ) { printf("Failed!!!"); } else { printf("Success!!!"); } return 0; } 조건 if(bal &lt; INT32_MIN )은 항상 참입니다. 그게 어떻게 가능해? 매크로를 다음과 같이 변경하면 정상적으로 작동합니다. #define INT32_MIN (-2147483648L) …

10
객체를 초기화 할 때 {0}은 무엇을 의미합니까?
{0}객체를 초기화하는 데 언제 사용됩니까? {0}어디에서나 참조를 찾을 수 없으며 중괄호 때문에 Google 검색이 도움이되지 않습니다. 예제 코드 : SHELLEXECUTEINFO sexi = {0}; // what does this do? sexi.cbSize = sizeof(SHELLEXECUTEINFO); sexi.hwnd = NULL; sexi.fMask = SEE_MASK_NOCLOSEPROCESS; sexi.lpFile = lpFile.c_str(); sexi.lpParameters = args; sexi.nShow = nShow; if(ShellExecuteEx(&amp;sexi)) { DWORD wait …
252 c++  c 



22
C는 sin () 및 기타 수학 함수를 어떻게 계산합니까?
.NET 디스 어셈블리와 GCC 소스 코드를 뚫고 있지만 실제 구현 sin()및 기타 수학 함수 를 찾을 수없는 것처럼 보입니다 ... 항상 다른 것을 참조하는 것 같습니다. 누구든지 그들을 찾도록 도울 수 있습니까? C가 실행할 모든 하드웨어가 하드웨어에서 삼각 함수를 지원하지 않을 것 같으므로 어딘가에 소프트웨어 알고리즘이 있어야합니다 . 함수 를 …
248 c  math  trigonometry 

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