반응형

C 251

"std"에 "std"가 포함되지 않고 C에서 무엇을 할 수 있습니까?'C'의 일부일까요, 아니면 그냥 라이브러리일까요?

"std"에 "std"가 포함되지 않고 C에서 무엇을 할 수 있습니까?'C'의 일부일까요, 아니면 그냥 라이브러리일까요? 주관적인 질문이나 반복적인 질문이라면 죄송합니다.검색하기가 좀 어려워서 어떤 용어를 넣어야 할지 잘 모르겠더라고요. 것은 기본 도구/ 알고 싶은 것은 에 표준 가 포함되어 때 입니다.stdio ★★★★★★★★★★★★★★★★★」stdlib. 에 없다, 없다, 없다, 어떻게 돼요?printf(),fopen() 또한 이러한 라이브러리는 기술적으로 "C" 언어의 일부입니까, 아니면 매우 유용하고 효과적으로 필수적인 라이브러리입니까? printf(), fopen() 등이 없는 경우 어떻게 해야 합니까? 사용하고 있는 시스템의 인터페이스 방법을 알고 있는 한, 표준 C 라이브러리 없이도 사용할 ..

programing 2022.07.01

문자열이 C에서 다른 문자열로 시작되는지 확인하는 방법

문자열이 C에서 다른 문자열로 시작되는지 확인하는 방법 뭐 이런 거 있어요?startsWith(str_a, str_b)표준 C도서관에서요? nullbytes로 끝나는2개의 스트링에 포인터를 붙이고 첫 번째 스트링도 두 번째 스트링의 선두에 완전히 표시되는지 여부를 알려 줍니다. 예: "abc", "abcdef" -> true "abcdef", "abc" -> false "abd", "abdcef" -> true "abc", "abc" -> true 여기에는 표준 함수는 없지만 정의할 수 있습니다. bool prefix(const char *pre, const char *str) { return strncmp(pre, str, strlen(pre)) == 0; } 우리는 걱정할 필요가 없다.str보다 짧다..

programing 2022.07.01

매크로가 간접적으로 확장될 때 C의 프리프로세서의 동작을 이해한다.

매크로가 간접적으로 확장될 때 C의 프리프로세서의 동작을 이해한다. 매크로 트릭과 마법으로 가득 찬 큰 프로젝트를 진행하던 중 매크로가 제대로 확장되지 않는 버그를 우연히 발견했습니다.결과 출력은 다음과 같습니다.EXPAND(0)"그런데EXPAND"로 정의되었습니다.#define EXPAND(X) X"그러니까 분명히 출력은 " "로 되어있어야 했다.0". "괜찮아."라고 나는 생각했다."어쩌면 바보 같은 실수일 수도 있어요. 결국 여기엔 나쁜 매크로가 몇 개 있어요. 잘못될 곳이 많으니까요.그래서 저는 잘못된 행동을 하는 매크로를 200라인 정도의 자체 프로젝트로 분리하여 문제를 특정하기 위한 MWE 작업을 시작했습니다.200줄은 150줄, 100줄은 20줄, 10줄은...정말 충격적이게도 이게 내 마지..

programing 2022.07.01

밸브라인드를 사용하여 메모리 누수를 찾는 방법

밸브라인드를 사용하여 메모리 누수를 찾는 방법 볼라인드를 사용하여 프로그램 메모리 누수를 판별하려면 어떻게 해야 합니까? 누가 도와주셔서 절차를 진행하기 위한 절차를 설명해 주시겠습니까? , Ubuntu 10.04를 .a.cValgrind 실행 방법 OP를 모욕하는 것이 아니라, 아직 Linux를 처음 사용하는 사용자를 위해 Valgrind를 시스템에 설치해야 할 수도 있습니다. sudo apt install valgrind # Ubuntu, Debian, etc. sudo yum install valgrind # RHEL, CentOS, Fedora, etc. sudo pacman -Syu valgrind # Arch, Manjaro, Garuda, etc Valgrind는 C/C++ 코드에 쉽게 사용..

programing 2022.06.30

다른 유형에 함수 포인터 캐스팅

다른 유형에 함수 포인터 캐스팅 예를 들어, 이 함수에 의해,void (*)(void*)콜백으로 사용하는 함수 포인터: void do_stuff(void (*callback_fp)(void*), void* callback_arg); 다음과 같은 기능이 있는 경우: void my_callback_function(struct my_struct* arg); 이거 안전하게 해도 돼요? do_stuff((void (*)(void*)) &my_callback_function, NULL); 저는 이 질문을 살펴보았고 호환 함수 포인터에 캐스팅할 수 있다는 C 표준을 몇 가지 살펴보았습니다만, '호환 함수 포인터'가 무엇을 의미하는지 정의를 찾을 수 없습니다.C 표준에 관한 한, 다른 유형의 함수 포인터에 함수 포인터..

programing 2022.06.30

C++에서 CMake가 링커 언어를 판별할 수 없음

C++에서 CMake가 링커 언어를 판별할 수 없음 Visual Studio 2010과 Cygwin을 모두 사용하여 Windows 7 x 64에서 cmake hello 월드 프로그램을 실행하려고 하는데 둘 다 작동하지 않는 것 같습니다.내 디렉토리 구조는 다음과 같습니다. HelloWorld -- CMakeLists.txt -- src/ -- -- CMakeLists.txt -- -- main.cpp -- build/ 나는 한다.cd build그 뒤에 a가 붙는다.cmake ..라고 하는 에러가 표시됩니다. CMake Error: CMake can not determine linker language for target:helloworld CMake Error: Cannot determine link l..

programing 2022.06.30

포인터가 일정하고 휘발성이 있다고 선언되었습니다.

포인터가 일정하고 휘발성이 있다고 선언되었습니다. 책을 읽다가 이런 종류의 선언문을 발견했는데, 다음과 같은 구절을 발견했습니다. const volatile char *p=(const volatile char *) 0x30; p 값은 외부 조건에 의해서만 변경됩니다. 외부 조건이 뭔지 모르겠어요.그리고 이런 유형의 선언이 실용적으로 무슨 소용이 있겠는가?그 그const프로그램의 흐름이프로그램 흐름으로 인해 에 의해 지적된 내용이 변경되지 않는다고 합니다로 인식은 수정하지 않을 것이다 말한다.p. 어떤 시도도 포인터는 컴파일 타임 오류로 이어질 것이다 역 참조 후 값을 수정할:.포인터를 참조 해제한 후 값을 변경하려고 하면 컴파일 시 오류가 발생합니다. *p = 'A'; // will not compile..

programing 2022.06.30

gcc에서 컴파일러 최적화를 비활성화하는 방법

gcc에서 컴파일러 최적화를 비활성화하는 방법 저는 어셈블리 언어를 배우려고 합니다.를 검색하여 분해하는 방법을 찾았습니다..c최적화된 버전의 프로그램을 만들 수 있을 것 같습니다.제 C파일에 해당하는 정확한 어셈블리 코드를 알 수 있는 방법은 없습니까?gcc 옵션-O는, 다양한 레벨의 최적화를 netable로 합니다.사용하다-O0사용하지 않도록 설정하다-S출력 어셈블리에 접속합니다. -O3최적화의 최고 레벨입니다. gcc 4.8부터의 최적화 레벨-Og사용할 수 있습니다.디버깅을 방해하지 않는 최적화를 이노블로 하여 표준 편집-컴파일-디버깅사이클에서 권장되는 기본값입니다. 어셈블리 언어를 intel 또는 att use로 변경하려면-masm=intel또는-masm=att. 특정 최적화를 수동으로 활성화할 ..

programing 2022.06.29

지역 의존 해시를 이해하려면 어떻게 해야 하나요?

지역 의존 해시를 이해하려면 어떻게 해야 하나요? 마감되었습니다. 이 질문은 충족되지 않습니다.스택 오버플로우 가이드라인현재 답변을 받고 있지 않습니다. 이 질문을 개선하시겠습니까?스택 오버플로의 토픽이 되도록 질문을 업데이트합니다. 작년에 문을 닫았어요. 이 질문을 개선하다 LSH는 고차원적인 특성을 가진 유사한 아이템을 찾는 좋은 방법인 것 같습니다. http://www.slaney.org/malcolm/yahoo/Slaney2008-LSHTutorial.pdf,이라는 논문을 읽고 난 후에도 나는 아직도 그 공식들에 혼란스럽다. 이 쉬운 방법을 설명하는 블로그나 기사를 아는 사람이 있나요?LSH에 관한 최고의 튜토리얼은 다음 책에 나와 있습니다.대규모 데이터 세트의 마이닝.3장 - 유사한 항목 찾기 ..

programing 2022.06.29

int의 사이즈는 올바른데 int의 사이즈는 잘못된 이유는 무엇입니까?

int의 사이즈는 올바른데 int의 사이즈는 잘못된 이유는 무엇입니까? 우리는 그것을 알고 있습니다.sizeof는 데이터형 및 식 크기를 계산하기 위해 사용하는 연산자로, 오퍼랜드가 식일 경우 괄호를 생략할 수 있습니다. int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } 최초의 사용법sizeof다른 사람들은 옳은 반면, 틀렸다. gcc를 사용하여 컴파일하면 다음 오류 메시지가 나타납니다. main.c:5:9: error: expected expression before ‘int’ C기준에서는 왜 이런 조작을 할 수 없는지 궁금해요.할 것이다sizeof int모호한 점이 있나요? 다음은 애매할 수 있습니다. s..

programing 2022.06.29
반응형