반응형

C 117

왜 C와 C++에 디그래프가 있는 거죠?

왜 C와 C++에 디그래프가 있는 거죠? C99와 C++에 디그래프가 있다는 것을 오늘 알았습니다.다음은 유효한 프로그램입니다. %:include %:ifndef BUFSIZE %:define BUFSIZE 512 %:endif void copy(char d, const char s, int len) = 0) %> 제 질문은 그들이 왜 존재하느냐는 것입니다.ISO 646 문자 집합을 지원하는 키보드가 없는 프로그래머를 위해 디그래프가 생성되었습니다. http://en.wikipedia.org/wiki/C_trigraph나는 그들의 존재를 추적해 볼 수 있는 것은 운영체제를 사용하는 컴파일러의 문자 집합이 너무 구식이어서 반드시 C나 C++가 언어 전체를 표현하기 위해 필요한 모든 문자를 가지고 있지 않다..

sourcecode 2022.08.21

C++ 프리프로세서 __VA_ARGS__ 인수 수

C++ 프리프로세서 __VA_ARGS__ 인수 수 인터넷에서 답을 찾을 수 없는 간단한 질문입니다.variadic 인수 매크로에서 인수 수를 찾으려면 어떻게 해야 합니까?boost preprocessor에 해결책이 있다면 저는 상관없습니다. 차이가 있는 경우 가변 개수의 매크로 인수를 변환하여 추가 재처리를 위해 프리프로세서 시퀀스, 목록 또는 배열을 활성화하려고 합니다.이는 실제로 컴파일러에 의존하며 어떤 표준에서도 지원되지 않습니다. 다만, 다음의 매크로 실장에서는, 카운트는 다음과 같습니다. #define PP_NARG(...) \ PP_NARG_(__VA_ARGS__,PP_RSEQ_N()) #define PP_NARG_(...) \ PP_ARG_N(__VA_ARGS__) #define PP_ARG..

sourcecode 2022.08.21

캐시 라인에 대한 정렬 및 캐시 라인 크기 파악

캐시 라인에 대한 정렬 및 캐시 라인 크기 파악 잘못된 공유를 방지하기 위해 배열의 각 요소를 캐시 라인에 정렬합니다.먼저 캐시 라인의 크기를 알아야 하기 때문에 각 요소에 해당 바이트 양을 할당합니다.두 번째로 어레이의 시작을 캐시 라인에 맞추고 싶습니다. Linux 및 8코어 x86 플랫폼을 사용하고 있습니다.첫 번째로 캐시 라인사이즈를 찾으려면 어떻게 해야 하나요?두 번째, C의 캐시 라인에 어떻게 대응합니까?gcc 컴파일러를 사용하고 있습니다. 예를 들어 캐시 라인 크기를 64로 가정하면 구조는 다음과 같습니다. element[0] occupies bytes 0-63 element[1] occupies bytes 64-127 element[2] occupies bytes 128-191 마찬가지로 ..

sourcecode 2022.08.21

vim에서 C 코드를 자동 포맷/인디트하려면 어떻게 해야 합니까?

vim에서 C 코드를 자동 포맷/인디트하려면 어떻게 해야 합니까? 다른 파일에서 코드를 복사하면 다음과 같이 포맷이 엉망이 됩니다. fun() { for(...) { for(...) { if(...) { } } } } vim에서 이 코드를 자동 포맷하려면 어떻게 해야 합니까?다음 키 입력을 시도합니다. gg=G 설명:gg파일 맨 위로 이동합니다.=들여쓰기를 수정하는 명령어입니다.G는, 파일의 끝까지 조작을 실행하도록 지시합니다.저는 Artistic Style이라는 프로그램을 사용하는 것을 좋아합니다.그들의 웹사이트에 따르면: Artistic Style은 C, C++, C# 및 Java 프로그래밍 언어의 소스 코드 입력자, 포맷터 및 뷰어입니다. Window, Linux 및 Mac에서 실행됩니다.들여쓰기,..

sourcecode 2022.08.21

GDB에서 특정 중단점이 히트했을 때 특정 액션을 수행하려면 어떻게 해야 합니까?

GDB에서 특정 중단점이 히트했을 때 특정 액션을 수행하려면 어떻게 해야 합니까? gdb에서 특정 브레이크 포인트가 히트했을 때 어떤 조치를 취할 수 있는 방법을 찾고 있습니다. 기본적으로 제 프로그램에는 memleak이 몇 개 있습니다.malloc와 free 함수가 히트하면 함수(스텝)에 들어가 Addr, size 등 기본적인 정보를 수집해야 합니다(기본적으로 값을 인쇄합니다).완료되면 프로그램을 다시 시작합니다. 우리가 이걸 할 좋은 방법이 있나요?예를 들어, 여기서 중단점 명령을 사용하여 x가 양수일 때마다 foo에 입력 시 x 값을 인쇄할 수 있습니다. break foo if x>0 commands silent printf "x is %d\n",x cont end 명령어 목록에서 처음 지정한 명령..

sourcecode 2022.08.17

C의 char 문자열을 수정할 수 있습니까?

C의 char 문자열을 수정할 수 있습니까? 여러 가지 C 튜토리얼이나 포인터 관련 서적에서 몇 시간 동안 고민하고 있습니다만, 정말 궁금한 것은 작성 후 char pointer를 변경할 수 있는지 여부입니다. 제가 시도한 것은 다음과 같습니다. char *a = "This is a string"; char *b = "new string"; a[2] = b[1]; // Causes a segment fault *b[2] = b[1]; // This almost seems like it would work but the compiler throws an error. 그러면 포인터 주소가 아닌 문자열 내의 값을 변경할 수 있는 방법이 있습니까?소스 코드에 "문자열"을 쓰면 해당 값을 컴파일 시 알아야 하기 ..

sourcecode 2022.08.17

다차원 어레이의 올바른 할당

다차원 어레이의 올바른 할당 이 질문의 목적은 C에서 다차원 어레이를 동적으로 할당하는 방법에 대한 참조를 제공하는 것입니다.이것은 일부 C 프로그래밍 서적에서조차 종종 오해되고 제대로 설명되지 않는 주제이다.그래서 숙련된 C 프로그래머들도 그것을 제대로 하기 위해 고군분투한다. 프로그래밍 선생님/책/튜토리얼로부터 다차원 배열을 동적으로 할당하는 올바른 방법은 포인터 투 포인터를 사용하는 것이라고 배웠습니다. 그러나 현재 SO의 몇몇 높은 평가 사용자는 이것이 잘못된 잘못된 관행이라고 말합니다.포인터 투 포인터는 어레이가 아니며 실제로 어레이를 할당하지 않으며 코드가 불필요하게 느리다고 합니다. 다차원 어레이를 할당하는 방법을 배웠습니다. #include #include #include int** arr..

sourcecode 2022.08.17

C 실행 파일 이름 결정

C 실행 파일 이름 결정 C 프로그램을 컴파일 할 때 출력은 a.out에 저장됩니다.컴파일된 출력을 다른 파일로 리다이렉트하려면 어떻게 해야 합니까?대부분의 C 컴파일러는 이를 위한 옵션을 제공합니다.-o에 대한 선택권.gcc기타 정보: gcc -o gentext gentext.c cc -o mainprog -Llib -lmymath firstbit.c secondbit.o xlc -o coredump coredump.c 를 사용하여-o선택. gcc main.c -o myCoolExecutable.o 프로그램이 1개의 파일로 구성되어 있는 경우, 이것은 괜찮습니다.더 많은 파일이 있다면 사용하는 것이 좋습니다.make: 를 만듭니다.Makefile명령어를 실행합니다.make. A Makefile는 컴파일..

sourcecode 2022.08.17

nl80211 라이브러리 및 cfg80211 구조

nl80211 라이브러리 및 cfg80211 구조 어떻게 하는지 알고 싶다.nl80211그리고.cfg80211상세하게 동작합니다.함수 흐름, 방법nl80211와 같은 네트워크 도구와 상호 작용합니다.wpa_supplicant,iw. 참고할 만한 유용한 링크나 책을 추천해 주세요.사용자 공간에서 무선 드라이버를 제어할 수 있도록 커널과 사용자 공간 간의 IPC 통신 프로세스가 사용됩니다. 처음에ioctl벤더 의존형 API가 사용되었습니다. 1996년에 Jean Torrilhs는 무선 확장(WE 또는 WEXT)을 작성했습니다. Wireless Extension(WE; 무선 익스텐션)은 일반적인 API로 드라이버는 일반적인 무선 LAN 고유의 사용자 공간 설정 및 통계 정보를 볼 수 있습니다. 2006년에 J..

sourcecode 2022.08.16

char**argv를 사용할지 char*ar*argv[]를 사용할지 여부

char**argv를 사용할지 char*ar*argv[]를 사용할지 여부 저는 지금 막 C를 배우고 있는데, 이 중 어떤 것을 메인 방법으로 사용해야 할지 고민하고 있습니다.차이가 있나요?어떤 게 더 흔한가요?C를 배운 지 얼마 안 되었기 때문에 공통적인 것이 아니라 어레이와 포인터의 차이점을 먼저 이해하도록 노력하시기 바랍니다. 파라미터 및 어레이 분야에서는 계속 진행하기 전에 몇 가지 혼란스러운 규칙이 있습니다.먼저 파라미터 목록에서 선언한 내용은 특별 취급됩니다.C의 함수 파라미터로서 의미가 없는 경우가 있습니다.이것들은 파라미터로서의 기능 파라미터로서의 어레이 파라미터로서의 어레이 두번째는 아마도 바로 명확하지 않을 것이다.그러나 배열 치수의 크기가 C의 유형의 일부라는 것을 고려하면 명확해집니다..

sourcecode 2022.08.16
반응형