C 33

glibc의 sscanf가 리눅스의 fscanf보다 매우 느린 이유는 무엇입니까?

glibc의 sscanf가 리눅스의 fscanf보다 매우 느린 이유는 무엇입니까? 저는 x86_64 리눅스에서 GCC 4.8과 glibc 2.19를 사용하고 있습니다. 다른 질문에 대해 다른 입력 방법으로 게임을 하면서 비교해 보았습니다.fscanf그리고.sscanf. 구체적으로 말하자면, 나는 그들을fscanf표준 입력에 직접적으로 다음을 입력합니다. char s[128]; int n; while (fscanf(stdin, "%127s %d", s, &n) == 2) { } 아니면 먼저 전체 입력을 버퍼로 읽은 다음 버퍼를 통과합니다.sscanf. (모든 것을 버퍼로 읽는 것은 아주 적은 시간이 걸립니다.) char s[128]; int n; char const * p = my_data; for (in..

programing 2023.09.16

(T)의 크기 == (정조 T)의 크기 및 (T)의 정렬 == (정조 T)의 정렬 여부

(T)의 크기 == (정조 T)의 크기 및 (T)의 정렬 == (정조 T)의 정렬 여부 다음과 같이 추정하는 것이 타당해 보입니다.T그리고.const T크기가 같고 정렬이 같은 두 가지 유형일 것입니다. 하지만 실제 시스템에 대해 생각해 본 결과, 이들은 다를 수 있을 것으로 보입니다. 제가 설명해 드리겠습니다. RAM과 Flash(읽기 전용) 두 가지 유형의 메모리가 있는 시스템이 있다고 가정합니다.RAM은 8비트 어드레싱이 가능한 반면 플래시는 16비트 어드레싱만 가능합니다.이것이T: struct T { uint8_t x; uint16_t y; }; 바이트 어드레싱 가능 RAM에서는 이 구조가 3바이트 길이일 것입니다. 하지만 더블 바이트 어드레싱 가능 플래시에서는 (여기서 a는const변수가 상주합..

programing 2023.09.16

모든 비트가 0이면 IEEE 부동 소수점의 값은 얼마입니까?

모든 비트가 0이면 IEEE 부동 소수점의 값은 얼마입니까? 모든 비트가 0인 경우(예: I)memset부동 소수점 변수에서 모두 0), gcc에 사용되는 IEEE 부동 소수점의 값은 얼마입니까?0.0이 보장됩니까? 다른 부동 소수점 형식의 경우 결과가 다를 수 있습니다.하지만 제 질문은 gcc와 함께 사용되는 IEEE 부동소수점에 한정되어 있습니다.구현이 IEEE 754를 준수하는 경우 여기에 문서화된 것과 같이 다양한 비트 조합에 대한 특별한 경우가 있습니다. 귀하의 경우:모든 비트(부호, 지수, 가수)가 0이면 부동 소수점 값도 IEEE 754에 의해 정의된 0을 나타냅니다.좀 더 구체적으로 말하면, 그 값은 +0으로도 쓰인 "양의 0"입니다.언급URL : https://stackoverflow.c..

programing 2023.09.01

#undef 앞에 #ifdef가 언제 필요합니까?

#undef 앞에 #ifdef가 언제 필요합니까? 많은 C 및 C++ 파일에서 다음과 같은 매크로를 볼 수 있습니다. #ifdef X #undef X // no statements in between #endif 저는 다음과 같이 간단히 쓰는 것이 적절하다고 생각합니다. #undef X 매크로의 경우X정의되지 않았고, 그러면.#undef효과가 없어야 합니다. 독립 실행형으로 놓아도 괜찮습니까?#undef매크로 정의를 해제하려면 어떻게 해야 합니까?그것이 코딩 연습을 나쁘게 만드나요?ISO C99 6.10.3.5 제2항 참조. 양식의 전처리 지시문 # undef identifier new-line 지정한 식별자가 더 이상 매크로 이름으로 정의되지 않도록 합니다.지정한 식별자가 현재 매크로 이름으로 정의되지..

programing 2023.08.17

양호한 C 문자열 라이브러리

양호한 C 문자열 라이브러리 닫힘.이 질문은 책, 도구, 소프트웨어 라이브러리 등에 대한 권장 사항을 찾는 것입니다.충족되지 않습니다.스택 오버플로 지침입니다.현재 답변을 수락하고 있지 않습니다. 책, 도구, 소프트웨어 라이브러리 등에 대한 추천을 구하는 질문은 허용되지 않습니다.질문에 사실과 인용문으로 답변할 수 있도록 질문을 편집할 수 있습니다. 4년 전에 문을 닫았습니다. 커뮤니티는 작년에 이 질문을 다시 시작할지 여부를 검토한 후 이 질문을 닫았습니다. 원래 종료 이유가 해결되지 않았습니다. 이 질문을 개선합니다. 저는 얼마 전부터 코딩을 하고 싶었던 프로젝트를 시작하려고 영감을 받았습니다.이 애플리케이션은 메모리 처리가 핵심이기 때문에 C에서 하고 싶습니다.저는 C에서 문자열의 좋은 구현을 찾고..

programing 2023.08.12

"ctx"는 무엇을 의미합니까?

"ctx"는 무엇을 의미합니까? 이미 다른 도서관에서 약어로 두 번이나 사용되는 것을 보았지만, 무슨 뜻인지 머리를 싸매고 있을 수가 없습니다. 예를 들어 다음과 같습니다. static int reformat_string(void * ctx, const unsigned char * stringVal, size_t stringLen) { yajl_gen g = (yajl_gen) ctx; return yajl_gen_status_ok == yajl_gen_string(g, stringVal, stringLen); } 제가 알기로는 보통 구조물에 사용됩니다.일반적으로 "context"의 약자입니다.일반적으로 이것은 상태(즉, 함수 호출의 컨텍스트)를 유지하는 데 사용되는 라이브러리의 함수로 전달되는 일부 구..

programing 2023.08.02

함수를 반환하는 함수를 만들려면 어떻게 해야 합니까?

함수를 반환하는 함수를 만들려면 어떻게 해야 합니까? 전체 그림:저는 기능이 있는 모듈과 그 기능에 대한 절차와 기능이 있는 모듈을 가지고 있습니다. 두 가지 기능을 결합할 때(기능의 모듈 인터페이스에서): double f1(double alpha, double x); double f2(double beta, double x); 여러 가지 방법으로, (그 중 하나는 추가하는 것입니다): double OP_Addition(double (*f)(double,double) , double (*g)(double,double), double param1, double param2, double x); 다음(일부) 구현에 문제가 없습니다. z1 = (*f)(param1, x); z2 = (*g)(param2, x)..

programing 2023.07.28

다른 컴파일러에서 MSVC의 _count of와 동등합니까?

다른 컴파일러에서 MSVC의 _count of와 동등합니까? 다른 컴파일러, 특히 GCC와 Clang에서 제공하는 것과 동등한 기본 제공물이 있습니까?매크로가 아닌 양식이 있습니까?C++11을 사용하는 비 매크로 형식은 다음과 같습니다. char arrname[5]; size_t count = std::extent::value; 그리고.extent에서 확인할 수 있습니다.type_traits표제의 또는 조금 더 멋있게 보이고 싶다면, 다음과 같이 포장합니다. template size_t countof( T ( & arr )[ N ] ) { return std::extent::value; } 그러면 다음..

programing 2023.07.23

char[]는 스택에 있지만 char *는 힙에 있는 이유는 무엇입니까?

char[]는 스택에 있지만 char *는 힙에 있는 이유는 무엇입니까? 저는 무슨 일이 일어나고 있는지 매우 혼란스럽습니다.나는 항상 생각했습니다.char *그리고.char []우리는 교환이 가능했지만, 메모리 주소를 보니char *힙에 공간을 할당하는 반면char []스택에 메모리를 할당하는 중입니다. char stack[] = "hello"; char *heap = "hello"; char *heap_string_malloc = malloc(5); heap_string_malloc = "hello"; printf("Address of stack[0]: %p\n", stack); printf("Address of heap[0]: %p\n", heap); printf("Address of heap_st..

programing 2023.07.23

Python - 상수 목록 또는 사전을 정의하는 최상의/최소한의 방법

Python - 상수 목록 또는 사전을 정의하는 최상의/최소한의 방법 처음으로 스택에 있는 사용자가 오버플로를 일으켰고 저는 여기에 오게 되어 기쁩니다. 인트로: 저는 최근에 파이썬 프로그래밍의 세계로 들어가는 마법의 모험을 시작했습니다 - 저는 그것을 좋아합니다.이제 C에서 어색한 전환 과정에서 모든 것이 순조롭게 진행되었지만 HEADER 파일(.h)과 동의어가 되는 것을 만드는 데 어려움을 겪고 있습니다. 문제:중간 크기의 사전과 목록(약 1,000개의 요소), 긴 열거형 및 '#defines'(별로 그렇지 않음)을 가지고 있지만 모두 정리할 수 있는 깨끗한 방법을 찾을 수 없습니다.C에서는 모든 것을 헤더 파일에 넣고 다시는 생각하지 않을 것이지만, 파이썬에서는 불가능하다고 생각합니다. 현재 더티 ..

programing 2023.07.03