반응형

C 23

중간 복사본 없이 표준 C에서 memmove를 구현하는 방법은 무엇입니까?

중간 복사본 없이 표준 C에서 memmove를 구현하는 방법은 무엇입니까? 내 시스템의 맨 페이지에서: void *memmove(void *dst, constvoid *src, size_tlen); 설명 는 렌 .memove로 복사합니다. 두 문자열이 중복될 수 있습니다. 복사는 항상 비파괴적으로 수행됩니다. 예의 범절 C99 표준에서: 두 할 때, 의 주소 에 따라 달라집니다.6.5.8.5 두 비 를 할 때 교 가 결 는 키 서 상 다 과 는 따 니 달 위 집 인 라 라 에 치 적 대 리 에 간 공 물 의 소 터 체 주 인 포 ▁6 ▁pointers ▁depends ▁are ▁on ▁pointed ▁to 6 ▁in 다 ▁the ▁result 니 집 개체 또는 불완전한 유형에 대한 두 포인터가 모두 동일..

programing 2023.07.26

((보이드(*)0x1000)();'는 무슨 뜻입니까?

((보이드(*)0x1000)();'는 무슨 뜻입니까? 이 질문에는 이미 다음과 같은 답이 있습니다. C 표현식(((void(*)(void))0)()은 무엇을 의미합니까? (5개 답변) 마감됨8년 전에. 프로그램 카운터를 주소로 점프하도록 설정하는 것이 목적인 코드가 있습니다.0x1000나는 그것이 무엇을 하는지 알지만 어떻게 하는지 이해하지 못합니다.그것은 제가 C 언어 지식이 부족한 것과 관련이 있습니다.당신이 나를 깨우쳐 줄 수 있을지도 모릅니다.문/함수는 여기에 있습니다(나는 그것이 무엇인지도 모릅니다 :). ((void (*)())0x1000)(); 반환되는 함수에 대한 포인터인 것 같습니다.void그리고 논쟁을 받아들이지 않습니다.제가 틀렸다면 고쳐주세요.C선언은 간단한 규칙을 사용하여 내부에서..

programing 2023.07.26

문자열을 토큰으로 분할하여 배열에 저장

문자열을 토큰으로 분할하여 배열에 저장 문자열을 토큰으로 분할한 다음 배열에 저장하는 방법은 무엇입니까? 구체적으로, 나는 끈을 가지고 있습니다."abc/qwe/jkh"헤어지고 싶어요"/"그런 다음 토큰을 배열에 저장합니다. 출력은 다음과 같습니다. array[0] = "abc" array[1] = "qwe" array[2] = "jkh" 제발 도와주세요#include #include int main () { char buf[] ="abc/qwe/ccd"; int i = 0; char *p = strtok (buf, "/"); char *array[3]; while (p != NULL) { array[i++] = p; p = strtok (NULL, "/"); } for (i = 0; i < 3; ++i..

programing 2023.07.16

정적 인라인, 외부 인라인 및 일반 인라인 기능의 차이점은 무엇입니까?

정적 인라인, 외부 인라인 및 일반 인라인 기능의 차이점은 무엇입니까? 다른 점은 무엇입니까?static inline,extern inline보통의inline기능? 저는 이것에 대한 모호한 설명을 보았습니다.제가 이해한 바로는static inline단순한 것이 아닙니다.inline특정 파일 내에서만 참조되도록 의도된 함수는 다음과 같습니다.static키워드는 일반적으로 의미합니다.마찬가지로extern inline제 생각에도, 그것은 에 대한 설명과 같지 않습니다.extern변수어떤 답변이라도 주시면 감사하겠습니다!를 사용한 함수 정의static inline내부 연결을 사용하여 인라인 함수를 정의합니다.이러한 함수는 이러한 한정자의 "일반적인" 속성에서 "예상대로" 작동합니다.static내부 연결을 제공합..

programing 2023.07.06

재할당 사용과 무료 사용의 차이점 -> malloc 함수

재할당 사용과 무료 사용의 차이점 -> malloc 함수 malloc() 함수를 다시 호출하기 전에 자유() 함수를 사용하는 대신 동적으로 할당된 배열의 크기를 조정하는 이유는 무엇입니까? (예: 장단점, 장점 대 단점 등)C 프로그래밍을 위한 것인데, 적합한 태그를 찾을 수가 없습니다.잘 부탁드립니다.메모리 관리는 시스템에 따라 다르기 때문에 이 벤치마크는 명확하지 않지만, 요즘에는 표준화된 경향이 있으므로 이러한 결과를 참조 포인트로 사용하는 것이 안전할 것입니다(실제 사례가 아닌 경우에는 알려 주십시오).4GB RAM이 장착된 2.10GHz 쿼드코어 Intel Core i3 2310M에서 Windows 7을 사용하고 있습니다.최고의 하드웨어는 아니지만, 현재 제 주변에 있는 최고의 하드웨어입니다. ..

programing 2023.06.11

힙의 구조체 구성원을 초기화하는 방법

힙의 구조체 구성원을 초기화하는 방법 힙에 구조물을 할당하고 초기화한 후 함수에서 포인터를 반환하고 싶습니다.이 시나리오에서 구조체의 구성원을 초기화할 수 있는 방법이 있는지 궁금합니다. #include typedef struct { const int x; const int y; } ImmutablePoint; ImmutablePoint * make_immutable_point(int x, int y) { ImmutablePoint *p = (ImmutablePoint *)malloc(sizeof(ImmutablePoint)); if (p == NULL) abort(); // How to initialize members x and y? return p; } 여기서 const members를 포함하는 힙..

programing 2023.06.11

C Make로 C 수학 라이브러리에 링크하는 방법은 무엇입니까?

C Make로 C 수학 라이브러리에 링크하는 방법은 무엇입니까? 어떻게 추가합니까?math내 Cmake 파일의 라이브러리?이 게시물은 타겟 링크 라이브러리를 추가하는 것을 언급하고 있지만, 저는 C에 대해 잘 모릅니다.추가 게시물 - 누군가 예시를 보여줄 수 있습니까?C를 사용하는 설명서를 받고 있습니다.undefined reference to 'pow'수학 헤더의 pow 방법으로. cmake_minimum_required(VERSION 3.3) project(CSCI-E-28-Unix-Linux-Systems-Programming) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES CMakeLists.txt getchar.c m..

programing 2023.06.11

이진 표기법에서 기수점 "." 뒤의 자릿수는 무엇을 의미합니까?

이진 표기법에서 기수점 "." 뒤의 자릿수는 무엇을 의미합니까? 기본 10 숫자에서 IEEE 754 플로트 표현으로 변환하는 방법에 대한 예제가 있습니다. Number: 45.25 (base 10) = 101101.01 (base 2) Sign: 0 Normalized form N = 1.0110101 * 2^5 Exponent esp = 5 E = 5 + 127 = 132 (base 10) = 10000100 (base 2) IEEE 754: 0 10000100 01101010000000000000000 한 구절을 제외하고는 이해가 됩니다. 45.25 (base 10) = 101101.01 (base 2) 45는 이진법으로 10101이고 괜찮습니다.하지만 그들은 어떻게 0.25를 0.01로 얻었을까요?..

programing 2023.06.11

C 코드를 "멀티 스레드"하는 방법

C 코드를 "멀티 스레드"하는 방법 저는 C로 작성된 숫자 크런치 애플리케이션을 가지고 있습니다.이것은 각 값에 대해 일부 계산을 수행하는 함수인 "i"의 값을 증가시키기 위해 호출되는 일종의 주 루프입니다.나는 멀티스레딩에 대해 읽었고, C에서 그것에 대해 조금 배울 것을 고려하고 있습니다.저는 저와 같은 일반적인 코드가 어떻게 자동으로 멀티 스레드화될 수 있는지 궁금합니다. 감사해요. P.D. 내 코드에 대한 아이디어를 얻기 위해 다음과 같은 것이라고 가정해 보겠습니다. main(...) for(i=0;inext) { add_a_task_to_thpool (task_list_elem, pool); } // kick start the thread pool thpool_run (pool); // Now ..

programing 2023.06.06

C에서 파일 확장명을 가져오는 중

C에서 파일 확장명을 가져오는 중 파일 확장자를 가져오는 방법(예:.tiff) C에 있는 파일 이름에서? 감사합니다!const char *get_filename_ext(const char *filename) { const char *dot = strrchr(filename, '.'); if(!dot || dot == filename) return ""; return dot + 1; } printf("%s\n", get_filename_ext("test.tiff")); printf("%s\n", get_filename_ext("test.blah.tiff")); printf("%s\n", get_filename_ext("test.")); printf("%s\n", get_filename_ext("test")..

programing 2023.06.06
반응형