반응형

C 251

8진수 리터럴:언제? 왜? 한번도?

8진수 리터럴:언제? 왜? 한번도? 닫혔어. 이 질문은 더 많은 것이 필요해.집중적인그것은 현재 답을 받아들이고 있지 않다. 이 문제를 개선하고 싶으십니까?이 게시물을 편집하여 한 가지 문제에 초점을 맞추도록 질문을 업데이트하십시오. 8년 전에 문을 닫았다. 이 질문 개선 나는 내 코드에 8진수를 사용한 적도 없고, 그것을 사용한 어떤 코드도 우연히 만난 적이 없다. 1994년경부터 C/C++로 프로그래밍을 시작했는데, 내가 너무 어려서 그런 건 아닐까?오래된 코드가 8진법을 사용하니?C는 0을 미리 입력하여 이들에 대한 지원을 포함하지만, 이 기본 8 숫자 리터럴을 사용하는 코드는 어디에 있는가?최근 3비트 필드에 접속하는 네트워크 프로토콜 코드를 작성해야 했다.옥탈은 당신이 그것을 디버깅하고 싶을 때..

programing 2022.04.25

C 및 C++에서 유니언의 목적

C 및 C++에서 유니언의 목적 나는 일찍이 편안하게 노동조합을 사용해왔다. 오늘 내가 이 글을 읽고 이 코드를 알게 되었을 때 나는 깜짝 놀랐다. union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // somewhere down the line, without any edit to pixel if(pixel.components.a) // accessing the non-active member ARGB::c..

programing 2022.04.25

다중 라인 전처리기 매크로

다중 라인 전처리기 매크로 멀티 라인 전처리기 매크로 만드는 방법?난 한 줄 만드는 법을 알아 #define sqr(X) (X*X) 하지만 난 이런게 필요해 #define someMacro(X) class X : public otherClass { int foo; void doFoo(); }; 어떻게 하면 이걸 작동시킬 수 있을까? 이것은 하나의 예일 뿐인데, 실제 매크로가 매우 길 수도 있다.당신이 사용하는 것은\줄 연속 탈출 캐릭터로 말이야 #define swap(a, b) { \ (a) ^= (b); \ (b) ^= (a); \ (a) ^= (b); \ } EDIT: @abelenky가 논평에서 지적한 바와 같이.\문자는 줄의 마지막 문자여야 한다.그렇지 않으면(이후 공백이라고 해도) 그 뒤에 각 ..

programing 2022.04.24

gdb 명령 화면이 얼마나 선명하십니까?

gdb 명령 화면이 얼마나 선명하십니까? gdb 명령 창을 지우는 것이 가능한가?그러니까 gdb에 (명령창에 대해) 명령어와 같은 일을 하는 명령어가 있는가.clear바시 터미널에서 지휘하시겠습니까?환경에 따라 이 키 조합을 사용해 보십시오.L +즉, 제어 키를 누르고 L 키를 입력하십시오. 그러나 이것은 모든 환경에서 작동하지 않을 수 있다.다음도 시도할 수 있다: gdb에서 셸 명령을 실행할 수 있다.shell: 이것을 사용하여 쉘로 호출하여 터미널을 비우십시오. shell clear 때리다Control + L리눅스 및 Mac OS X에서도 최신 GDB 버전과 함께 사용 가능.참조URL: https://stackoverflow.com/questions/12938067/how-clear-gdb-comm..

programing 2022.04.24

문자 배열이 비어 있는지 확인하는 가장 좋은 방법

문자 배열이 비어 있는지 확인하는 가장 좋은 방법 문자 배열이 비어 있는지 확인하는 가장 신뢰할 수 있는 방법은? char text[50]; if(strlen(text) == 0) {} 또는 if(text[0] == '\0') {} 아니면 내가 해야 할 필요가 있는가? memset(text, 0, sizeof(text)); if(strlen(text) == 0) {} 이 문제를 해결하는 가장 효율적인 방법은 무엇인가?다음 코드 지정: char text[50]; if(strlen(text) == 0) {} 이어서 이 코드에 대한 질문: memset(text, 0, sizeof(text)); if(strlen(text) == 0) {} 혼탁한 냄새가 난다.특히, 이 경우: char text[50]; if(s..

programing 2022.04.24

왜 정적으로 연결된 glibc가 낙담하는가?

왜 정적으로 연결된 glibc가 낙담하는가? 대부분의 온라인 소스는 glibc를 정적으로 연결할 수 있지만 그렇게 하는 것을 주저한다고 명시한다. 예를 들어 centos package repo: glibc 정전기 패키지는 정전기 연결을 위한 C 라이브러리 정전기 라이브러리를 포함하고 있다.정적으로 연결하지 않는 한, 이것들은 필요하지 않다. 그것은 매우 낙담된다. 이런 소식통들은 왜 그것이 나쁜 생각인지 거의 말하지 않는다.다른 답변에 제시된 이유는 맞지만 가장 중요한 이유는 아니다. glibc가 정적으로 연결돼서는 안 되는 가장 중요한 이유는 nss(이름 서비스 스위치) 모듈과 변환을 로딩하기 위해 광범위한 내부 활용을 하기 때문이다.모듈 자체가 C 라이브러리 기능을 가리킨다.메인 프로그램이 C 라이브..

programing 2022.04.23

C의 엄격한 별칭 위반, 주물 없음에도 불구하고?

C의 엄격한 별칭 위반, 주물 없음에도 불구하고? 어떻게 그럴 수가 있지?*i그리고u.i이 코드의 다른 숫자를 인쇄한다.i로 정의된다.int *i = &u.i;내가 여기서 UB를 촉발시켰다고 추측할 수 있을 뿐인데 어떻게 해야 정확한지 모르겠어. (언어로 'C'를 선택하면 하나의 데모가 복제된다.그러나 @2501이 지적했듯이 'C99 엄격한'이 언어라면 그렇지 않다.하지만 또 다시, 난 문제가 생겼어gcc-5.3.0 -std=c99!) // gcc -fstrict-aliasing -std=c99 -O2 union { int i; short s; } u; int * i = &u.i; short * s = &u.s; int main() { *i = 2; *s = 100; printf(" *i = %d\n",..

programing 2022.04.23

C구조와 C++구조

C구조와 C++구조 C&C++ 구조의 주요 차이점이 무엇인지 알려주시겠습니까?C++인struct그리고class구조체 기본값이public가시성 및 클래스 기본값은private육안성의 C에서 구조 이름은 자체 네임스페이스에 있으므로, 구조 이름이 있는 경우struct Foo {};, 너는 글을 써야 한다.struct Foo foo;C++에서는 해당 유형의 변수를 만들 수 있지만Foo foo;C 스타일도 허용되지만.C 프로그래머는 보통 사용한다.typedef struct {} Foo;변수 정의에 대해 C++ 구문을 허용한다. 또한 C 프로그래밍 언어는 가시성 제한, 회원 기능 또는 상속을 지원하지 않는다.C와 C++ 구조에는 몇 가지 차이가 있다. C에서는 구조 유형 값을 생성하기 위해 구조 키워드가 필요하지..

programing 2022.04.23

줄임표를 다른 변량 함수에 전달

줄임표를 다른 변량 함수에 전달 이 질문에는 이미 다음과 같은 해답이 있다. C에서 가변 함수의 호출 전달 (12개 답변) 닫힌7년 전. 나는 대략 30가지의 다양한 기능을 가지고 있다.각자는 하나의 경로를 최종 주장으로 받아들인다. 예를 들어, 다음과 같다. bool do_foo(struct *f, int q, const char *fmt, ...) 각 기능에서 확장된 형식이 그때보다 작거나 일정한 크기와 동일한지 확인해야 한다.그래서 같은 코드 덩어리를 복사/붙여넣고 몇 글자인지 확인하려고vsnprintf()인쇄되지 않음, 설정됨errno따라서 글에서 벗어나게 될 것이다. 내가 하고 싶은 것은 이것을 하기 위해 함수를 쓰는 것인데, 이것은 안전한 크기라고 알려진 정적으로 할당된 (확장된) 문자열이나,..

programing 2022.04.22

C 소스 파일을 다른 파일에 포함하시겠습니까?

C 소스 파일을 다른 파일에 포함하시겠습니까? 에 대해 괜찮은가(또는 권장/좋은 관행이라도)#include a .c다른 사람을 철하다..c철해 주시겠습니까?제대로 사용하면 유용한 기술이 될 수 있다. 상당히 작은 공용 인터페이스와 많은 재사용 불가능한 구현 코드를 가진 복잡한 성능의 중요한 서브시스템이 있다고 가정해 보십시오.그 코드는 수천 줄에 달하고, 백여 개의 사적인 기능들과 꽤 많은 수의 사적인 데이터들이 있다.만약 당신이 비종교적인 임베디드 시스템으로 일한다면, 당신은 아마도 이 상황을 충분히 자주 다룰 것이다. 당신의 솔루션은 아마도 계층화되고, 모듈화되고, 분리될 것이며, 이러한 측면들은 다른 파일에서 서브시스템의 다른 부분을 코딩함으로써 유용하게 표현되고 강화될 수 있다. C가 있으면 이렇..

programing 2022.04.22
반응형