반응형

C 31

C/C++ 다차원 배열 초기화 시 크기 생략

C/C++ 다차원 배열 초기화 시 크기 생략 제가 C/C++ 컴파일러에 대해 아는 것은 다차원 배열을 초기화하는 동안 내부 브레이스를 무시한다는 것입니다. 그럼, 당신은 할 수 없는거군요. int myArray[][] = { { 2, 3 }, { 4, 5 }, { 4, 1 } }; 왜냐하면 컴파일러는 정확히 다음과 같이 볼 것이기 때문입니다. int myArray[][] = { 2, 3, 4, 5, 4, 1 }; 이제 6 * 1, 3 * 2, 2 * 3, 1 * 6인지 아니면 다른 것인지 알 수 없습니다(이것은 부분 초기화 목록일 수 있지만 반드시 완전한 것은 아닙니다). 제 질문은, 왜 이것이 많은 컴파일러에서 작동하는가 하는 것입니다. int myArray[][2] = { { 2 }, { 4, 5 }..

programing 2023.10.15

Linux 및 Windows에서 모두 실행할 휴대용 라이브러리 만들기

Linux 및 Windows에서 모두 실행할 휴대용 라이브러리 만들기 gcc (GCC) 4.7.2 안녕하세요. 저는 리눅스 상에서 컴파일 할 공유 라이브러리와 윈도우 상에서 동일한 소스 코드를 사용하여 컴파일 할 dll을 만들고 있습니다.그래서 저는 리눅스와 윈도우 모두를 위한 휴대용 라이브러리를 만들고 있습니다. 라이브러리에 대한 내 헤더 파일에는 이 module.h가 있습니다. #ifdef __cplusplus extern "C" { #endif #ifdef _WIN32 #define LIB_INTERFACE(type) EXTERN_C __declspec(dllexport) type #else #define LIB_INTERFACE(type) type #endif LIB_INTERFACE(int) m..

programing 2023.10.10

C에서 STRCT를 사용할 때 명명 규칙

C에서 STRCT를 사용할 때 명명 규칙 저는 C를 배우고 있는데 구조 이름 앞에 구조가 정의된 사람을 발견했습니다.제가 처음 보는 건데, 누가 조금만 더 알려주실 수 있나요?어떤 사람이 StructName 대신 _aStructName을 사용하는 이유는 무엇입니까? struct _huffmanNode { int value; uint32_t frequency; int hasChild; struct _huffmanNode *child[2]; struct _huffmanNode *next; }; 마찬가지로 다음 코드에서 이런 종류의 명명 규칙을 사용하는 사람을 발견했습니다. typedef struct HuffCode_ { unsigned char used; unsigned short code; unsigned..

programing 2023.10.05

"본래 스레드 세이프(thread-safe)"란 무엇을 의미합니까?

"본래 스레드 세이프(thread-safe)"란 무엇을 의미합니까? "예를 들어, 일부 기능은 본질적으로 스레드 세이프(thread safe)입니다."라는 대사를 우연히 발견했습니다. 위키피디아는 "실 안전"을 다음과 같이 정의합니다. 코드 조각은 여러 스레드에 의해 동시에 안전하게 실행되도록 보장하는 방식으로 공유 데이터 구조만 조작하는 경우 스레드 안전합니다. 좋아요. 하지만 본질적으로 어떤 의미일까요?상속과 관련이 있습니까?상속과는 관련이 없습니다.그것은 비공식적인 표현이고 더 유사하다는 뜻입니다. "일부 기능은 그 특성상 나사산에 안전합니다."예를 들어 그렇지 않은 함수입니다. touch any shared values/state is thread safe(아무튼 공유 값/상태는 스레드 세이프)"..

programing 2023.10.05

sigprocmask()에서 Set and Oldset(설정 및 이전 설정)

sigprocmask()에서 Set and Oldset(설정 및 이전 설정) 사용법을 완전히 이해하지 못했습니다.sigprocmask(). 특히, 어떻게.set그리고.oldset그리고 그 구문의 작동과 사용 방법. int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); 차단하려면 SIGUSR1이라고 몇 초간 말한 다음 차단 해제하고 처리하는 것을 예를 들어 설명해 주세요.­­­­­­­­­­­­­­­­­­­­­­­­­­­­­그 생각은 당신이 마스크를 제공하는 것입니다.set, 효과적으로 신호의 목록입니다.how인수는 마스크를 사용하여 무엇을 해야 하는지 말합니다.set. 사용하실 수 있습니다.SIG_BLOCK신호를 막다set리스트, 또는SIG_U..

programing 2023.10.05

C에서 128비트 정수 할당

C에서 128비트 정수 할당 gcc 4.9.1에서 128비트 정수를 할당하려고 하면 다음과 같은 메시지가 나타납니다.warning: integer constant is too large for its type. 예제 코드 int main(void) { __uint128_t p = 47942806932686753431; return 0; } 산출량 저는 저와 함께 편집하고 있습니다.gcc -std=c11 -o test test.c알 수 있습니다. test.c: In function ‘main’: test.c:2:19: warning: integer constant is too large for its type __uint128_t p = 47942806932686753431; ^ 제가 뭔가 잘못하고 있는 ..

programing 2023.09.20

Visual Studio 2010에 64비트에 대한 #정의가 있습니까?

Visual Studio 2010에 64비트에 대한 #정의가 있습니까? Visual Studio가 64비트 모드로 컴파일하고 있는지 여부를 나타내는 #defin이 있습니까?조건부로 그렇게 코드를 넣을 수 있으면 좋겠습니다. #ifdef _IS_64BIT ... #else //32 bit ... #endif 제가 직접 플래그를 만들 수 있다는 것은 알지만, 컴파일러가 플래그를 제공하는지 궁금합니다.#ifdef _WIN64 ... #else ... #endif 마이크로소프트 문서에 문서화됨사용하다_WIN64. 64비트 프로세서의 종류는 중요하지 않습니다.#ifdef WIN32아니면#ifdef _WIN32x64에서 작동할 것입니다.언급URL : https://stackoverflow.com/questions/..

programing 2023.09.20

SQLite3 및 여러 프로세스

SQLite3 및 여러 프로세스 여러 프로세스가 하나의 SQLite 데이터베이스 파일에 액세스할 때 정확성을 보장하는 방법은 무엇입니까?먼저 sqlite 데이터베이스 파일에 대한 동시 액세스를 방지합니다.동시성은 sqlite의 약점 중 하나이며 동시성이 높은 응용 프로그램이 있다면 다른 데이터베이스 엔진을 사용하는 것을 고려해 보십시오. 동시성을 피할 수 없거나 sqlite를 떨어뜨릴 수 없는 경우 쓰기 트랜잭션을 다음으로 감싸십시오.BEGIN IMMEDIATE;...END;. sqlite의 기본 트랜잭션 모드는DEFERRED즉, 첫 번째 실제 쓰기 시도 시에만 잠금이 획득됨을 의미합니다.와 함께IMMEDIATE거래, 잠금 장치가 즉시 획득되거나, 또는 당신은SQLITE_BUSY즉시누군가 데이터베이스에 ..

programing 2023.09.20

struct addrinfo와 struct sockaddr의 차이점은 무엇입니까?

struct addrinfo와 struct sockaddr의 차이점은 무엇입니까? struct addrinfo는 socket addr 구조를 준비하는데 사용되고 struct sockaddr에는 socket addr 정보가 포함되어 있는 것으로 알고 있습니다.그런데 그게 실제로 무슨 뜻일까요? struct addrinfo에는 struct sockaddr에 대한 포인터가 포함되어 있습니다.왜 그들을 따로 떼어 놓죠?sockaddr 내의 모든 것을 addr_info로 결합할 수 없는 이유는 무엇입니까? 저는 그냥 여기서 추측하고 있는데 두 사람이 분리된 이유가 건물을 지날 때 공간을 절약하기 위해서인가요?예를 들어 bind() 호출에서는 포트 번호와 인터넷 주소만 있으면 됩니다.그래서 이 둘은 모두 구조적인 ..

programing 2023.09.15

C11의 __STDC_VERSION__ 값은 얼마입니까?

C11의 __STDC_VERSION__ 값은 얼마입니까? 나는 컴파일러들이__STDC__컴파일러가 표준 C임을 나타내기 위해 , 그리고 , 거기로부터 , 당신은 사용할 수 있습니다.__STDC_VERSION__어떤 수준의 기준을 사용하는지 파악할 수 있습니다. 나는 또한 C90이 가치가 없다는 것을 알고 있습니다, C90 수정판 1은 가치가 없다는 것을 알고 있습니다.199401L그리고 C99는199901L. 제가 최근에 작성한 C1x 초안은 단순히 다음과 같이 기재되어 있습니다.201ymmL그리고 최종 기준에서 덜 모호한 값으로 만들어졌다고 생각합니다. 내 추측으로는 그럴 겁니다.201112L그때 C11이 비준되었기 때문에 저는 확신하고 싶습니다. 사용해 볼 수 있을 것 같아서요.gcc -std=c1x..

programing 2023.09.15
반응형