반응형

C 78

어떻게 하면 C 프리프로세서와 두 번 연결하여 "arg ##_# MACRO"처럼 매크로를 확장할 수 있습니까?

어떻게 하면 C 프리프로세서와 두 번 연결하여 "arg ##_# MACRO"처럼 매크로를 확장할 수 있습니까? 다음과 같은 매크로를 사용하여 특정 매크로 변수의 값에 따라 일부 함수의 이름이 달라지는 프로그램을 작성하려고 합니다. #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); 도 이 NAME()을 turns그로 int some_function_VARIABLE(int a); 보다는 int some_function_3(int a); 에 VARILE의 VARILE은 의 VARILE의 VARILE의 VARILE의 을 간단하게 할 수 있습니다.#if VARIABLE == n모든 케이스를 개별적으로 나..

itsource 2022.07.21

16진수를 C로 표시하는 방법

16진수를 C로 표시하는 방법 다음과 같은 번호 목록을 가지고 있습니다. 0, 16, 32, 48 ... 이 수치를 16진수로 다음과 같이 출력해야 합니다. 0000,0010,0020,0030,0040 ... 다음과 같은 솔루션을 시도했습니다. printf("%.4x",a); // where a is an integer 내가 얻은 결과는 다음과 같다. 0000, 0001, 0002, 0003, 0004 ... 거의 다 온 것 같아요.제가 잘 못하는데 누가 좀 도와주실래요?printf주식회사. 고마워요.시험: printf("%04x",a); 0- 패딩이 지정된 공백 대신 숫자(0)를 왼쪽 패딩합니다. 4(폭) - 최소 인쇄 글자 수.인쇄하는 값이 이 수치보다 작을 경우, 패드 문자 좌측에 패딩하는 것으로,..

itsource 2022.07.17

메인스트림 OS에서 프로그램의 C/C++ 최대 스택 크기

메인스트림 OS에서 프로그램의 C/C++ 최대 스택 크기 100 X 100 어레이로 DFS를 실행하고 싶다.(어레이의 요소가 그래프노드를 나타냄) 따라서 최악의 경우 재귀함수 호출의 깊이는 10000까지 올라가 각 호출에 20바이트가 소요될 수 있습니다.그러면 스택 오버플로우 가능성이 있다는 의미일까요? C/C++에서 스택의 최대 사이즈는 어떻게 됩니까? 다 gcc에 대해 하십시오. 1) Windows의 cygwin 2) Unix 일반적인 제한은 어느 정도입니까?Visual Studio에서는 기본 스택사이즈는 1MB라고 생각합니다.따라서 재귀깊이가 10,000일 경우 각 스택프레임은 최대 100바이트로 DFS 알고리즘에 충분합니다. Visual Studio를 포함한 대부분의 컴파일러에서는 스택 크기를 지..

itsource 2022.07.17

Visual Studio에서의 C 프로그래밍

Visual Studio에서의 C 프로그래밍 Visual Studio를 사용하여 C 프로그래밍을 배울 수 있습니까?새 프로젝트 메뉴에서 Visual Basic, Visual C#, Visual C++, Visual F# 및 기타 중에서 선택할 수 있지만 "C" 또는 "Visual C"가 표시되지 않습니다.간단한 답변:네, .cpp 파일의 이름을 c로 변경해야 C: https://msdn.microsoft.com/en-us/library/bb384838.aspx?f=255&MSPPError=-2147217396 라고 쓸 수 있습니다. 위의 링크에서: 기본적으로는 Visual C++ 컴파일러는 .c로 끝나는 모든 파일을 C 소스 코드로, .cpp로 끝나는 모든 파일을 C++ 소스 코드로 처리합니다.파일 이름..

itsource 2022.07.17

LD_PRELOAD 트릭이란 무엇입니까?

LD_PRELOAD 트릭이란 무엇입니까? 나는 최근에 그것에 대한 언급을 우연히 발견했는데 (현재로서는) 설명되지 않는다. 이게 아닐까 하는 생각이 들지만, 확실히는 모르겠어요.설정했을 경우LD_PRELOAD공유 객체의 경로에 해당 파일이 다른 라이브러리보다 먼저 로드됩니다(C 런타임 포함).libc.so실행 방법ls특집으로malloc()구현, 다음을 수행합니다. $ LD_PRELOAD=/path/to/my/malloc.so /bin/ls 많은 분들이 언급하셨듯이LD_PRELOAD프리로드 할 수 있습니다.덧붙여서, 다음의 방법으로 설정이 가능한지를 확인할 수 있습니다.ldd명령어를 입력합니다. 예:자신의 것을 프리로드할 필요가 있다고 가정합니다.libselinux.so.1. > ldd /bin/ls ....

itsource 2022.07.17

EOF 시뮬레이션 방법

EOF 시뮬레이션 방법 저는 현재 K&R의 책을 읽고 첫 번째 섹션의 예를 타이핑하고 있는데, 다음과 같은 예가 몇 가지 있습니다. while((c = getchar()) != EOF) { //do something } Windows 박스에서 이러한 예를 테스트하고 있습니다.따라서 컴파일된 exe 파일을 실행합니다.cmd신속한. 위의 예를 테스트하려면 어떻게 하면EOF즉, 기본적으로 명령어프롬프트에서 예를 테스트할 때 루프를 정지하려면 어떻게 해야 합니까?EOF를 입력하려면 다음 명령을 사용합니다. Windows 에서의 ^Z()CtrlZ ^D(유닉스 계열 시스템) 「EOF」를 참조 Windows: Ctrl+Z Unix :Ctrl+D 먼저 다음을 누릅니다.Ctrl^X, 다음: Ctrl^Dint 변수에 -1..

itsource 2022.07.17

포인터를 이해하기 위한 장벽은 무엇이며, 이를 극복하기 위해 무엇을 할 수 있을까요?

포인터를 이해하기 위한 장벽은 무엇이며, 이를 극복하기 위해 무엇을 할 수 있을까요? 닫혔어. 이 질문은 좀 더 자세히 설명해야 합니다.초점을 맞춥니다.현재 답변을 받고 있지 않습니다. 이 질문을 개선하시겠습니까?이 게시물을 편집하여 하나의 문제에 초점을 맞추도록 질문을 업데이트하십시오. 8년 전에 문을 닫았어요 이 질문을 개선하다 왜 포인터들은 C나 C++의 많은 새로운, 심지어 오래된 대학생들에게 혼란의 주요 요소일까?포인터가 변수, 함수 및 수준을 넘어서는 방식으로 작동하는 방법을 이해하는 데 도움이 되는 도구 또는 사고 프로세스가 있습니까? "아하, 알았어"라는 수준에 도달하기 위해 할 수 있는 좋은 연습 방법은 무엇일까요? 전체적인 개념에 얽매이지 않고 말이죠.기본적으로 시나리오와 같은 드릴을 ..

itsource 2022.07.17

Linux의 itoa 기능은 어디에 있나요?

Linux의 itoa 기능은 어디에 있나요? itoa()숫자를 문자열로 변환하는 데 매우 편리한 기능입니다.에 Linux가 되어 있지 않은 것 같습니다.itoa(), 반드시 를 해야 합니까?sprintf(str, "%d", num)편집: 죄송합니다. 이 기계는 비표준이며, 다양한 비표준 전원 케이블을 연결했습니다.libc ~로itoa()는 실제로했듯이 사용하시는 .여러 유용한 코멘트에 의해 언급되었듯이, 를 사용하는 것이 가장 좋습니다.sprintf(target_string,"%d",source_int)더 좋다.snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int)★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★..

itsource 2022.07.17
반응형