반응형

C 135

누가 유니언을 쓰겠어?C-only 시절의 유물인가요?

누가 유니언을 쓰겠어?C-only 시절의 유물인가요? 나는 배우기는 했지만 실제로 조합이 생기지는 않는다.C 또는 C++ 텍스트는 모두 소개되지만(때로는 지나가는 경우도 있지만) 그 이유나 사용처에 대한 실제적인 예는 거의 제시하지 않는 경향이 있습니다.현대(또는 유산)의 경우 언제 조합이 유용할 것인가?작업 공간이 매우 한정되어 있거나 API(또는 이와 유사한 것)를 개발하고 있을 때 최종 사용자에게 한 번에 여러 개체/유형의 인스턴스만 사용하도록 강요하고 싶을 때 마이크로프로세서를 프로그래밍하는 것이 유일한 두 가지 추측입니다.이 두 가지 추측이 맞긴 한가요? 결합은 일반적으로 식별자와 함께 사용됩니다. 즉, 결합의 어떤 필드가 유효한지를 나타내는 변수입니다.예를 들어, 독자적인 Variant 타입을..

programing 2022.07.28

ios_base의 중요성::sync_with_stdio(false), cin.tie(NULL);

ios_base의 중요성::sync_with_stdio(false), cin.tie(NULL); 다음을 포함시키는 것의 의미는 무엇입니까? ios_base::sync_with_stdio(false); cin.tie(NULL); C++ 프로그램에서는요? 제 테스트에서는 실행 시간이 단축됩니다만, 이것을 포함시켜 걱정해야 할 테스트 케이스가 있습니까? 두 개의 문장은 항상 함께 있어야 합니까?아니면 첫 번째 문장으로 충분합니까?즉, 무시하는 것으로 충분합니까?cin.tie(NULL)? 또한 C와 C++ 명령어의 값이 다음과 같이 설정되어 있는 경우 동시에 C와 C++ 명령어를 사용할 수 있습니까?false? https://www.codechef.com/viewsolution/7316085 위의 코드는 정상적..

programing 2022.07.28

이렇게 하면 메모리를 해방시킬 수 있을까요?

이렇게 하면 메모리를 해방시킬 수 있을까요? 의 인스턴스를 해방하는 함수struct Foo이하에 나타냅니다. void DestroyFoo(Foo* foo) { if (foo) free(foo); } 제 동료가 대신 다음과 같은 제안을 했습니다. void DestroyFoo(Foo** foo) { if (!(*foo)) return; Foo *tmpFoo = *foo; *foo = NULL; // prevents future concurrency problems memset(tmpFoo, 0, sizeof(Foo)); // problems show up immediately if referred to free memory free(tmpFoo); } 포인터를 로 설정하는 것을 알 수 있습니다.NULL해방 ..

programing 2022.07.28

posix_memalign/memalign의 기능

posix_memalign/memalign의 기능 어떤 기능이 있는지 이해하려고 합니다.memalign()그리고.posix_memalign()사용 가능한 문서를 읽는 것은 도움이 되지 않았습니다. 어떻게 작동하는지, 어떤 용도로 사용하는지 누가 좀 알려주시겠어요?또는 사용 예를 제시해 주십시오. Linux 메모리의 구조를 이해하려고 합니다만, 독자적인 심플한 메모리 풀(저 플래그멘테이션 힙)을 쓸 필요가 있습니다.반면에.malloc는, 얼라인먼트를 가질 수 있는 메모리 청크를 제공합니다(유일한 요건은 실장이 서포트하는 가장 큰 프리미티브 타입으로 얼라인먼트를 할 필요가 있습니다).posix_memalign는 요청된 정렬이 보장되는 메모리 청크를 제공합니다. 그 결과, 예를 들어 posix_memalign..

programing 2022.07.26

iOS 라이브러리에서 BitCode로

iOS 라이브러리에서 BitCode로 최근에 Xcode 7 베타 버전을 다운로드했는데, Xcode가 C 라이브러리의 일부가 BitCode로 컴파일되지 않았다고 불평합니다.Clang에게 iOS에 대응한 Bit Code를 제작하도록 어떻게 전달하면 좋을까요?stackoverflow에서도 비슷한 답변을 본 적이 있지만 iOS용 BitCode 라이브러리 제작에 적용되는지 모르겠습니다. 편집: 올바른 설정인 -fembed-bitcode를 사용하고 있는데 아카이브하려고 하면 ld: warning: ignoring file XXX/XXXX, file is builded for archive (architecture가 아닌 아카이브용으로 작성되었습니다)라는 오류가 나타납니다(arm64).-fembed-bitcode-m..

programing 2022.07.26

이 C는 왜 유효합니까?

이 C는 왜 유효합니까? 레딧에서 우연히 이 코드를 발견했어요.타입 변환이 무효라고 생각했을 것입니다. int a[3] = { { {1, 2}, {3, 4}, 5, 6 }, {7, 8}, {9}, 10 }; 스칼라 이니셜라이저의 과도한 요소와 브레이스에 대한 경고가 몇 개 표시됩니다.하지만 지지 of of 의 a[1, 7, 9]. 이것이 실제로 정당한 것이며, 만약 그렇다면, 정확히 무슨 일이 일어나고 있는지 누가 설명해 줄 수 있나요? int a[3] = { { {1, 2}, {3, 4}, 5, 6 }, {7, 8}, {9}, 10 }; 무효입니다. 입니다.int b[1] = {1, 2}; 「C99」라고 되어 있기 때문입니다.C99 † (C99, 6.7.8p1) "초기화자는 초기화 대상 내에 포함되지 ..

programing 2022.07.26

printf에서 '%p'은 어디에 유용합니까?

printf에서 '%p'은 어디에 유용합니까? 결국, 이 두 진술은 같은 일을 합니다... int a = 10; int *b = &a; printf("%p\n",b); printf("%08X\n",b); 예를 들어 (주소가 다른 경우) 0012FEE0 0012FEE0 포인터를 원하는 대로 포맷하는 것은 간단합니다.%x, 그럼, 의 적절한 용도는 무엇입니까?%p옵션?그들은 같은 일을 하지 않는다.후자의 진술은 다음과 같이 해석한다.b로서unsigned int(그것은 틀렸습니다)b는 포인터입니다. 포인터 및unsigned int는 항상 같은 사이즈는 아니기 때문에 서로 교환할 수 없습니다.크기가 동일하지 않은 경우(64비트 CPU와 운영체제가 보편화됨에 따라 점점 더 일반적인 경우)%x는, 주소의 반만 인쇄..

programing 2022.07.26

Ubuntu에서 화살표 키를 누르면 단말기에 "^[A" "^[B" "^[C" "^[D"" 가 표시되는 이유는 무엇입니까?

Ubuntu에서 화살표 키를 누르면 단말기에 "^[A" "^[B" "^[C" "^[D"" 가 표시되는 이유는 무엇입니까? 처음에 윈도에서 Asi C로 작은 프로그램을 작성했고, 지금은 GCC가 내장된 Ubuntu로 컴파일했습니다. 프로그램은 간단합니다. 콘솔에서 행을 읽다scanf(). 문자열을 분석하여 계산한다. 하지만 이상한 일이 일어나죠.커서를 이동하려고 하면 4글자가 인쇄됩니다. 인쇄 인쇄 "^[[A" 인쇄 인쇄 "^[[B" 인쇄 인쇄 "^[[C" 인쇄 인쇄 "^[[D" 어떻게 하면 피할 수 있을까요? 왜 커서를 움직이지 않고 이 4글자를 인쇄합니까? 이는 사용자 계정이 셸에 생성되었기 때문일 수 있습니다.두 가지 방법으로 bash로 변경할 수 있습니다. 퍼마멘트 용액은 - sudo chsh -s..

programing 2022.07.18

여러 정의가 정의되어 있지 않은지 사전 프로세서가 확인합니다.

여러 정의가 정의되어 있지 않은지 사전 프로세서가 확인합니다. 사용자가 편집할 수 있는 #defines가 헤더에 있습니다.따라서 사용자가 그것들을 모두 삭제했을 경우의 정의가 존재하는지 확인합니다. #if defined MANUF && defined SERIAL && defined MODEL // All defined OK so do nothing #else #error "User is stoopid!" #endif 이 방법은 완벽하게 작동합니다. 하지만 여러 정의가 제대로 설정되어 있지 않은지 확인할 수 있는 더 좋은 방법이 있는지 궁금합니다. 예를 들어 다음과 같습니다. #ifn defined MANUF || defined SERIAL ||.... // note the n in #ifn 또는 아마도 ..

programing 2022.07.18

C 콤마 연산자 사용

C 콤마 연산자 사용 이 질문에는 이미 답변이 있습니다. 콤마 연산자의 역할은 무엇입니까? (8개의 답변) 닫힘7년 전. 에서 loop 문장으로 사용되고 있는 것을 알 수 있습니다만, 이것은 어디에서나 유효한 구문입니다.만약 있다면 다른 곳에서 무슨 소용이 있습니까?C++뿐만 아니라 C 언어도 역사적으로 완전히 다른 두 가지 프로그래밍 스타일이 혼합되어 있으며, 이를 "스테이트먼트 프로그래밍"과 "표현식 프로그래밍"이라고 할 수 있습니다.아시다시피 모든 절차 프로그래밍 언어는 일반적으로 시퀀스 및 분기 같은 기본 구조를 지원합니다(구조화된 프로그래밍 참조).이러한 기본 구성 요소는 두 가지 형태로 C/C++ 언어로 나타납니다. 하나는 문 프로그래밍용이고 다른 하나는 표현식 프로그래밍용입니다. 를 들어,할..

programing 2022.07.17
반응형