반응형

C 40

C/C++에 기능이 있는지 확인하는 방법은?

C/C++에 기능이 있는지 확인하는 방법은? 내 코드의 특정 상황에서는 해당 함수가 정의된 경우에만 함수를 호출하거나 그렇지 않으면 호출하지 않습니다.어떻게 하면 이것을 이룰 수 있을까요? like: if (function 'sum' exists ) then invoke sum () 아마도 이 질문을 하는 다른 방법은 함수가 런타임에 정의되었는지 여부를 결정하고, 정의된 경우 호출하는 방법일 것입니다.GCC를 사용하면 다음을 수행할 수 있습니다. void func(int argc, char *argv[]) __attribute__((weak)); // weak declaration must always be present // optional definition: /*void func(int argc, ..

programing 2023.10.07

create system call을 create라고 부르는 이유는 무엇입니까?

create system call을 create라고 부르는 이유는 무엇입니까? 현재 상태로는 이 질문은 우리의 Q&A 형식에 맞지 않습니다.사실, 참고 자료 또는 전문 지식에 의해 답변이 뒷받침되기를 기대하지만, 이 질문은 토론, 주장, 여론 조사 또는 토론을 요청할 가능성이 높습니다.만약 이 질문이 개선되고 다시 열릴 수 있다고 생각한다면,안내를 받기 위해 헬프 센터를 방문합니다. 닫힘10년 전에. 시스템 호출 생성이 호출되는 이유creat? 또한 버퍼 크기에 대한 정의를 호출하는 이유는 다음과 같습니다.BUFSIZ아닌BUFSIZE? 다른 예가 있습니까? 관련 : (댓글에서 가져옴) 켄 톰슨이 "저는 'e'로 창조의 철자를 쓰고 싶습니다."라고 말했을 때 무슨 뜻이었을까요?LSP(28페이지)에서: 예,..

programing 2023.10.07

두 프로세스(C, Windows) 간 메모리 공유

두 프로세스(C, Windows) 간 메모리 공유 이전에 질문했던 것에 대한 답을 찾지 못했기 때문에 다른 접근법을 시도하고 있습니다. 두 프로세스 간에 메모리를 공유할 수 있는 방법이 있습니까? 두 번째 프로세스는 더 이상 지원되지 않는 레거시 프로그램이기 때문에 주입을 통해 정보를 얻습니다. 제 생각은 코드를 거기에 주입하는 것입니다. 주입된 프로그램에 전달하는 구조에서 주소(또는 무엇이든)를 실행해야 하는 데이터가 있는 공유 메모리로 전달하는 것입니다.데이터를 받으면 주입된 스레드 내부에 변수를 채울 것입니다. 이게 가능할까요? 어떻게요? 코드는 감사합니다. 편집: 확실하지 않은 것 같아서 명확히 해두겠습니다.주사를 놓을 줄 압니다이미 하고 있습니다.여기서 문제는 주사기에 동적 데이터를 전달하는 것..

programing 2023.10.07

리눅스 C 프로그램:함수가 속한 라이브러리를 찾는 방법

리눅스 C 프로그램:함수가 속한 라이브러리를 찾는 방법 런타임에 함수 "printf"가 정의된 위치를 찾고 싶습니다.제가 이걸 어떻게 하죠?저의 첫 번째 시도는 "printf"의 주소를 출력하여 프로세스의 가상 주소 매핑과 비교하는 것이었습니다. 내 프로그램: #include #include void main() { printf("address of printf is 0x%X\n", printf); printf("pid is %d\n", getpid()); while (1); } 출력: -bash-4.1$ ./a & [1] 28837 -bash-4.1$ address of printf is 0x4003F8 pid is 28837 하지만 이것은 그 기능이 내 프로그램에 정의되어 있다고 말합니다! -bash..

programing 2023.10.02

C에서 char **는 무엇입니까?

C에서 char **는 무엇입니까? 이 질문에는 이미 다음과 같은 답변이 있습니다. 닫힘10년 전에. 중복 가능: 이중성이란 무엇입니까? 저는 C를 처음 접했고, 이 진술을 접했습니다. typedef char **TreeType 나는 typedef가 무엇을 하는지 꽤 잘 알고 있지만 char**는 본 적이 없습니다.char*가 문자열과 비슷한 char 배열이라는 것을 알고 있습니다.char**가 2d char 배열인지 문자 배열의 포인터인지 잘 모르겠습니다.주위를 둘러봤지만 무엇인지 찾을 수가 없습니다.char**가 무엇인지 설명해주시거나 올바른 방향을 알려주시면 대단히 감사하겠습니다. 감사합니다! :)엄밀히 말하면.char*배열이 아니라 에 대한 포인터입니다.char. 유사하게,char**A를 가리키는..

programing 2023.10.02

C에서 구조의 포인터는 항상 첫 번째 부재를 가리킵니까?

C에서 구조의 포인터는 항상 첫 번째 부재를 가리킵니까? 특정 함수 집합을 사용하고자 하는 C 구조가 있다고 가정합니다. 다음 방법이 정당한 방법인지 궁금합니다. typedef struct Base { int exampleMember; // ... } Base; typedef struct Foo { Base base; // ... } Foo; typedef struct Bar { Base base; // ... } Bar; void MethodOperatesOnBase(void *); void MethodOperatesOnBase(void * obj) { Base * base = obj; base->exampleMember++; } 예제에서 두 구조가 모두Foo그리고.Bar첫머리에Base회원. 그리고 그..

programing 2023.10.02

C-to-하드웨어 컴파일러 (HLL 합성)

C-to-하드웨어 컴파일러 (HLL 합성) 문 닫았습니다.이 질문은 더 많아야 합니다.집중력이 있는현재 답변을 받지 않고 있습니다. 이 질문을 개선하고 싶으십니까?이 게시물을 편집하여 한 가지 문제에만 초점을 맞추도록 질문을 업데이트합니다. 9년전에 문을 닫았습니다. 이 질문을 개선합니다. 모든 C-to-하드웨어 컴파일러에 대한 설문조사/이력을 작성하려고 합니다. 그들을 모르는 모든 사람들을 위해: 그들은 C 코드를 어떤 하드웨어 설명 언어(예: VHDL 또는 Verilog)로 변환한 다음 하드웨어를 생성하는 데 사용할 수 있습니다(보통 FPGA에 매핑되지만 나는 그것에 국한되지 않습니다. 대상 ASIC도 괜찮을 것입니다. 저는 이미 그들에 대한 (+) 정보를 꽤 모았습니다.그래서 제 질문은:다른 컴파일..

programing 2023.10.02

C++에서 _In_이란 무엇입니까?

C++에서 _In_이란 무엇입니까? 제가 이것을 많이 찾아봤지만, 도움이 되는 결과가 나오지 않았습니다. 저는 현재 윈도우 8 메트로용 간단한 DirectxX 게임을 프로그래밍하려고 하는데 우연히 발견되었습니다._In_꽤 많이그게 뭔지 궁금할 뿐입니다. 또한, 저는 의 사용을 많이 보았습니다.^지시자로서*이상하다고 생각했습니다.이 위에, 일부 클래스는 다음과 같은 인터페이스를 갖습니다.ref class MyClass, C# 가독성을 위해서라고 생각합니다. 어쨌든, 어떤 도움이라도 좋겠군요.코드 분석에 사용되는 SAL 주석입니다.주석 자체는 일반 빌드에서 아무것도 아닌 것으로 확장되는 매크로로 정의됩니다. 그^그리고.ref class는 C++/CX의 기능으로, C++에서 윈도우 8용 Metro 스타일 앱을..

programing 2023.10.02

서명되지 않은 int에 음수 값을 할당하면 어떻게 됩니까?

서명되지 않은 int에 음수 값을 할당하면 어떻게 됩니까? 이 질문에는 이미 다음과 같은 답변이 있습니다. 닫힘12년 전에. 중복 가능: C에서 서명되지 않은 변환에 서명했습니다 - 항상 안전한가요? unsigned int 유형의 변수를 선언합니다.unsigned int x = -1; 이제 -1 in two의 보어(32비트 머신 가정)는 0xFFFFFF입니다.이제 x에 이 값을 할당했을 때 x에 0x7FFFFFF가 할당되었습니까? 그렇다면 f("%d",x)를 인쇄합니다. 0x7FFFFFF에 해당하는 10진수를 인쇄했을 것입니다.그러나 인쇄되는 값이 -1이기 때문에 이러한 현상은 발생하지 않습니다.내가 뭘 놓치고 있는 거지? 편집: %u 형식 지정자를 사용하여 서명되지 않은 값을 인쇄할 수 있음을 알고 있..

programing 2023.09.27

널 포인터 해제

널 포인터 해제 NULL을 가리키고 있는 포인터를 해제하려고 하면 메모리 내부에서 어떤 일이 발생합니까? 그것이 유효한 적이 있습니까? 경고/오류 메시지가 표시되지 않는 이유는 무엇입니까?C99 섹션 7.20.3.2 : 무료 기능 시놉시스 1 #include void free(void *ptr); 묘사 2 free function은 ptr이 가리킨 공간을 할당 해제, 즉 추가 할당을 위해 사용할 수 있도록 합니다.ptr이 null 포인터이면 작업이 발생하지 않습니다. http://linux.die.net/man/3/malloc 에서: ptr이 NULL이면 작업이 수행되지 않습니다. 아주 오래 전에 null 포인터를 free로 주면 충돌하는 'free()' 구현이 있었습니다.이는 C89(C90) 표준의 이..

programing 2023.09.12
반응형