반응형

c 32

구조 vs.범위의 함수 정의

구조 vs.범위의 함수 정의 제가 알기로는 C에서 합법적인 것으로 알고 있습니다. 축구의 struct foo { int a; }; 바의 struct foo { char a; }; 그러나 기능이 있는 것과 같은 것은 불법입니다. 축구의 int foo() { return 1; } 바의 int foo() { return 0; } 합니다의 ())가 foo). 왜 그런 것일까요?구조명과 함수명은 C가 하나를 처리하지 못하고 다른 하나는 처리하지 못하게 만드는 차이점이 무엇입니까?또한 이 동작이 C++로 확장됩니까? 왜 그런 것일까요? struct foo { int a; }; 개체를 만들기 위한 템플릿을 정의합니다.객체나 함수를 만들지 않습니다.~하지 않는 한struct foo컴파일러/링커에 관한 한 코드 어딘가에..

sourcetip 2023.10.15

서명되지 않은 long int를 사용하는 경우에도 오버플로가 나타납니다.

서명되지 않은 long int를 사용하는 경우에도 오버플로가 나타납니다. 다음과 같은 계산을 할 때: unsigned long long int data_size = 60123456 * 128 * sizeof(double); printf("data_size= %llu \n", data_size); 놀랍게도 오버플로 경고를 받습니다. test.c:20:49: warning: overflow in expression; result is -894132224 with type 'int' [-Winteger-overflow] unsigned long long int data_size = 60123456 * 128 * sizeof(double); ^ 1 warning generated. 사용하고 있는데도 왜 이 오류..

sourcetip 2023.10.15

K&R 연습 1-9: 입력을 출력하여 여러 공백을 하나의 공백으로 대체

K&R 연습 1-9: 입력을 출력하여 여러 공백을 하나의 공백으로 대체 나는 C 다리를 얻기 위해 C에 관한 책들을 뒤지고 있습니다.알겠어요?!)저는 방금 K&R 책에서 1-9번 연습을 마쳤습니다. 참고로 "입력 내용을 출력에 복사할 프로그램을 작성하여 하나 이상의 빈칸의 각 문자열을 하나의 빈칸으로 대체"하는 것입니다.제 코드에 무슨 일이 있는 건지 여쭤볼 게 있습니다만.. #include //Copy input to output. Replace each string of multiple spaces with one single space int main(int argc, char *argv[]){ int ch, lch; // Variables to hold the current and last cha..

sourcetip 2023.10.10

Python의 C/C++ 프로그램용 가상 Env와 동등한 것이 있습니까?

Python의 C/C++ 프로그램용 가상 Env와 동등한 것이 있습니까? 저는 사이언티픽 리눅스 5나 6에서 실행해야 하는 C++ 프로그램을 개발해야 합니다.저는 SCL6에서 찾을 수 있는 라이브러리보다 훨씬 더 최신 라이브러리를 가진 우분투에서 QtCreator와 함께 개발하고 싶습니다. Python의 C/C++ 프로그램용 가상 Env와 동등한 것이 있습니까? 필요한 모든 라이브러리와 종속성을 가진 chroot을 사용하면 작업이 가능합니다.이게 존재합니까?chroot 사용에 대해서는 http://rcrowley.org/articles/dependencies.html 를 참조하십시오.다음 도구를 사용할 수 있습니다. conan 가상환경 (https://blog.conan.io/2016/08/04/Cona..

sourcetip 2023.10.10

C의 함수에서 열거를 반환합니까?

C의 함수에서 열거를 반환합니까? 헤더 파일에 다음과 같은 것이 있을 경우 Foo 유형의 열거형을 반환하는 함수를 선언하려면 어떻게 해야 합니까? enum Foo { BAR, BAZ }; 저는 그냥 다음과 같은 것을 해도 됩니까? Foo testFunc() { return Foo.BAR; } 아니면 타입 디프나 포인터 같은 것을 사용해야 합니까?C++에서는 그냥 사용할 수 있습니다.Foo. C에서는 다음을 사용해야 합니다.enum Foo당신이 그것에 대한 유형의 디프를 제공할 때까지. 그리고 나서, 당신이 언급할 때,BAR, 사용하지않습니다.Foo.BAR다만 그냥BAR. 모든 열거 상수는 동일한 네임스페이스(함수, 변수 등에서 사용되는 "일반 식별자" 네임스페이스)를 공유합니다. 따라서(C의 경우): e..

sourcetip 2023.10.05

맥 OS X의 표준 C 라이브러리는 어디에 있습니까?

맥 OS X의 표준 C 라이브러리는 어디에 있습니까? Mac OS X에서 표준 C 라이브러리를 찾으려고 합니다. "/usr/lib/libc와 같은 경로를 시도했습니다.a" 또는 "/usr/lib/libm.a" 하지만 시스템에 그런 파일이 없습니다.어디에 있습니까? 그런 다음 리눅스 머신에서 터미널을 사용하여 다음과 같은 명령을 실행했습니다. ar t /usr/lib/libc.a .o 파일의 목록을 반환하며 이러한 .o 파일은 다음과 같습니다. svc.o xdr.o ... 이 파일들의 의미는 무엇입니까?어디에서 그들을 찾을 수 있습니까?표준 라이브러리는 OS X의 libSystem.dylib의 일부입니다.그런 것 같네요. /usr/lib/libSystem.B.dylib (Mac OS X v10.6.7(Sn..

sourcetip 2023.10.05

어떻게 하면 낮은 8비트의 int를 얻을 수 있습니까?

어떻게 하면 낮은 8비트의 int를 얻을 수 있습니까? 제가 n = 8의 int 변수를 가지고 있다고 가정해 보겠습니다. 대부분의 시스템에서 이 값은 32비트 값이 됩니다.이것의 하위 8비트(최저 바이트)만 이진법으로 얻을 수 있는 방법은 무엇입니까?또한 각 비트에 액세스하여 해당 비트가 무엇인지 알 수 있는 방법이 있습니까?unsigned n = 8; unsigned low8bits = n & 0xFF; 몇 가지 사항을 참고합니다. 비트 와이즈 연산의 경우 항상unsigned종류들 비트는 이진 마스킹을 사용하여 숫자에서 추출할 수 있습니다.&교환입니다. 로우 8비트에 액세스하려면 마스크가0xFF왜냐하면 이진법에서는 낮은 8비트가 켜지고 나머지 0비트가 켜지기 때문입니다. 숫자 8의 하위 8비트는...8..

sourcetip 2023.09.20

malloc 선언이 포함된 헤더 파일의 이름은 무엇입니까?

malloc 선언이 포함된 헤더 파일의 이름은 무엇입니까? 다음의 선언을 포함하는 헤더 파일의 이름은 무엇입니까?malloc()C와 C++의 기능?들어있습니다.stdlib.h(C) 그리고cstdlib(C++). 일반적으로 이러한 질문에 대해서는 구글에서 "c++ 함수"를 찾아보세요.대부분의 경우 첫 번째 히트작은 표준 내용에 대한 완전한 참조를 포함하는 cplusplus.com 을 가리킵니다.언급URL : https://stackoverflow.com/questions/7292224/what-is-the-name-of-the-header-file-that-contains-the-declaration-of-malloc

sourcetip 2023.09.10

epoll은 나사산으로 안전합니까?

epoll은 나사산으로 안전합니까? epoll에는 두 가지 기능이 있습니다. epoll_ctl epoll_wait 동일한 epoll_fd를 사용할 때 스레드가 안전합니까? 한 스레드가 epoll_wait를 호출하고 다른 스레드가 epoll_ctl을 동시에 호출하면 어떻게 됩니까?스레드 세이프이지만 이를 명시하는 문서는 많지 않습니다.여기 참조 BTW, 하나의 스레드에서 여러 개를 대기시킬 수도 있습니다.epoll_fd하지만 그런 경우에는 약간 까다로울 수 있습니다. (즉, 에지 트리거를 사용하는 것이 좋습니다.)EPOLLET또는 원샷 모드EPOLLONESHOT여기를 참조하십시오.)참고: 기존에 승인된 답변은 맞지만, epoll 문서에서는 "명시적으로 설명하는 문서가 많지 않습니다."라고 언급하고 있습니다..

sourcetip 2023.08.01

Linux OS에서 열려 있는 모든 소켓 확인

Linux OS에서 열려 있는 모든 소켓 확인 내 프로그램은 다음 기능으로 소켓을 엽니다. sockfd = 소켓 (AF_)INET, SOCK_RAW, IPPROTO_ICMP) 데이터 전송을 마치면 소켓이 닫힙니다. close(tftfd); 그러나 문제는 프로그램이 잘 실행되지 않고 차단 중인 경우입니다.따라서 소켓이 닫히지 않습니다. Linux OS에서 열려 있는 모든 소켓을 확인하려면 어떻게 해야 합니까?또한 sss 유틸리티를 사용하여 소켓 통계를 덤프할 수 있습니다. 요약을 덤프하는 방법: ss -s Total: 91 (kernel 0) TCP: 18 (estab 11, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0 Transport Total I..

sourcetip 2023.08.01
반응형