반응형

C 117

C에서 구조물에 대한 포인터를 초기화하는 방법은?

C에서 구조물에 대한 포인터를 초기화하는 방법은? 이 구조를 고려할 때: struct PipeShm { int init; int flag; sem_t *mutex; char * ptr1; char * ptr2; int status1; int status2; int semaphoreFlag; }; 잘 작동합니다. static struct PipeShm myPipe = { .init = 0 , .flag = FALSE , .mutex = NULL , .ptr1 = NULL , .ptr2 = NULL , .status1 = -10 , .status2 = -10 , .semaphoreFlag = FALSE }; 하지만 내가 선언할 때는static struct PipeShm * myPipe, 작동이 안 돼요 교환..

sourcecode 2023.10.01

GDB가 16진수 모드에서 모든 값을 출력하도록 하는 방법은?

GDB가 16진수 모드에서 모든 값을 출력하도록 하는 방법은? 기본적으로 GDB는 항상 기본 10에 있는 모든 변수/인수를 인쇄/표시합니다. GDB에 무언가를 인쇄하는 동안 항상 베이스 16을 사용하도록 요청할 수 있는 방법이 있습니까? (그리고 그것이 필요하지 않을 때 기본 설정으로 되돌리십시오) 나는 그것을 공급함으로써 인쇄할 수 있다고 알고 있습니다./x인쇄/표시를 위해 인수를 수행하지만, 매번 그렇게 하고 싶지는 않습니다.set output-radix 16(그리고set output-radix 10다시 전환합니다).내 기계에서,set output-radix 10효과는 없지만,set output-radix 0xA작동하다.언급URL : https://stackoverflow.com/questions/6..

sourcecode 2023.09.21

C API에서 0은 '참'을 의미하고 1은 '거짓'을 의미하는 것이 일반적입니까?

C API에서 0은 '참'을 의미하고 1은 '거짓'을 의미하는 것이 일반적입니까? 을 발견했습니다.is_equals()동일하지 않은 SQL 테이블의 경우 1을 반환하고 동일한 테이블의 경우 0을 반환한 작업의 C API에서 함수입니다(false).저는 제 코드에 테스트 케이스를 실행한 후에야 그것을 깨달았습니다. 하나는 양성 예제, 하나는 음성 예제인데 둘 다 실패했습니다. 처음에는 말이 안 되었습니다.API의 코드는 출력이 문서에 정확하게 기록되어 있어 버그가 없습니다. 제 질문은 이 논리적 노팅이 정상인 거꾸로 세계/평행 우주/코딩 언어가 있습니까?1은 보통 사실 아닌가요?API의 코더에 오류가 있습니까?는 가 이 입니다 되는 입니다를 입니다.0"between"에서 "between"의 음수를 반환하고..

sourcecode 2023.09.16

발그린드로 유닛 테스트를 진행하는 것은 오버킬인가요?

발그린드로 유닛 테스트를 진행하는 것은 오버킬인가요? 얼마 전에 체크라는 단위 테스트 프레임워크를 알아보기 시작했고 리눅스에서 c 코드로 테스트를 실행할 예정입니다. 이제 확인하고 잘 설계된 코드와 테스트 코드가 기본 기능이 올바른지 확인하는 데 도움이 됩니다. 즉, 의 변수를 보고 응답한 다음 함수가 올바른지 여부를 결정하는 것은 꽤 쉽습니다. 하지만 많은 malloc와 free가 있는 동적 메모리 구조를 테스트해보고 싶다고 하자, 데이터를 입력하고 다시 정확한 데이터를 가져올 수 있다는 것이 밝혀졌습니다.그러나 그것이 제가 그 과정에서 어떤 기억을 깨지 않았다는 것을 증명하지는 못합니다. 예를 들어 제가 기억의 절반을 없애는 것을 잊어버리고 포인터(클래식 기억법)를 잃어버렸다고 합시다.그 코드는 아마..

sourcecode 2023.09.06

매크로에서 붙여넣은 토큰을 대문자로 바꿀 수 있습니까?

매크로에서 붙여넣은 토큰을 대문자로 바꿀 수 있습니까? C 매크로에서, 붙여넣기 토큰을 자본화하는 것이 가능합니까?예를 들어 현재 다음과 같은 매크로가 있습니다. #define TEST(name, keyword) \ test_##name: TEST_##keyword##_KEYWORD 저는 이것을 다음과 같이 적용할 것입니다. TEST(test1, TEST1) 그러면 다음과 같은 결과를 얻을 수 있습니다. test_test1: TEST_TEST1_KEYWORD 이제 동일한 이름을 두 번 입력하는 대신(한 번은 모든 소문자로, 다시는 모든 대문자로) 다음 중 하나를 수행하고 토큰을 모두 대문자 또는 소문자로 변경할 수 있는 방법이 있습니까? TEST(test1) or TEST(TEST1) 고마워, 라이언제가..

sourcecode 2023.08.07

C: 구조물에 대한 포인터 배열에 대한 포인터(할당/할당 취소 문제)

C: 구조물에 대한 포인터 배열에 대한 포인터(할당/할당 취소 문제) 저는 무언가를 위해 C에 다시 들어갔지만, 이 메모리 관리가 어떻게 작동하는지 대부분 기억하는 데 어려움을 겪고 있습니다.구조물에 대한 포인터 배열에 대한 포인터를 갖고 싶습니다. 내가 가지고 있다고 말하시오: struct Test { int data; }; 그런 다음 배열: struct Test **array1; 이거 맞는건가요?제 문제는 이것을 다루는 것입니다.따라서 배열의 각 포인터는 개별적으로 할당된 것을 가리킵니다.하지만 제가 먼저 해야 할 일이 있습니다. array1 = malloc(MAX * sizeof(struct Test *)); 위의 내용을 이해하는 데 어려움을 겪고 있습니다.이 작업을 수행해야 하며, 왜 이 작업을 ..

sourcecode 2023.07.23

C/C++용 CoffeeScript와 유사한 언어

C/C++용 CoffeeScript와 유사한 언어 저는 C/C++을 제외하고 커피스크립트와 동일한 기능을 제공하는 언어를 찾고 있었습니다.제 말은 코드를 C로 변환하지만, 커피스크립트가 자바스크립트로 변환하는 것처럼 읽을 수 있고 읽을 수 있는 언어를 의미합니다.저는 이것이 가능하고 심지어 바람직하다고 생각합니다. (Node.js 네이티브 모듈을 작성할 때 마지못해 C++을 다루지만) 자바스크립트와 같은 고급 언어보다 더 어렵습니다. 당신이 요구하는 것은 성능이나 유연성을 희생하지 않고 통사적인 설탕을 제공하는 언어입니다. 공백 스타일)def/end곱슬곱슬한 중괄호 대신 블록)을 추가하는 것은 사소한 일입니다.하지만 더 진보된 것을 추가하면, 정적 타이핑과 쓰레기 수거라는 두 가지 주요 장애물에 부딪히게..

sourcecode 2023.07.23

GCC가 .cpp 파일을 C로 컴파일하도록 강제 적용

GCC가 .cpp 파일을 C로 컴파일하도록 강제 적용 외부에서 제공한 .cpp 파일을 가지고 있습니다.이것은 C 호환 코드와 약간의 C++의 혼합입니다.C++ 코드는 C++ 기능을 활용하기 위한 C 주변의 래퍼일 뿐입니다. 그것은 사용합니다.#ifdef __cplusplusC++ 코드를 보호하기 위한 매크로, 좋습니다.유감스럽게도 GCC를 사용하여 컴파일을 시도하면 파일 종료로 인해 C++로 처리됩니다.사이의 차이점을 알고 있습니다.gcc그리고.g++저는 C++로 컴파일하고 싶지 않습니다. GCC가 이 파일을 C 파일로 처리하도록 강제할 수 있는 방법이 있습니까?예를 들어 사용해 보았습니다. --std=c99그러나 이렇게 하면 C99가 C++에 유효하지 않다는 오류가 발생합니다. 파일 이름을 .c로 변경..

sourcecode 2023.07.03

String.indexOf 함수 C

String.indexOf 함수 C 문자열에 있는 문자의 인덱스를 반환하는 C 라이브러리 함수가 있습니까? 지금까지 찾은 것은 원래 문자열에 있는 위치가 아니라 찾은 char *를 반환하는 strt와 같은 함수들뿐입니다.strstr포인터를 찾은 문자로 반환하므로 포인터 산술을 사용할 수 있습니다. (참고: 이 코드는 컴파일 능력에 대해 테스트되지 않았으며 유사 코드에서 한 단계 떨어져 있습니다.) char * source = "test string"; /* assume source address is */ /* 0x10 for example */ char * found = strstr( source, "in" ); /* should return 0x18 */ if (found != NULL) /* str..

sourcecode 2023.06.28

'\r' 이스케이프 시퀀스의 용도는 무엇입니까?

'\r' 이스케이프 시퀀스의 용도는 무엇입니까? C코드는 다음과 같습니다. #include int main() { printf("Hey this is my first hello world \r"); return 0; } 사용하였습니다.\r탈출 시퀀스를 실험으로 삼습니다.코드를 실행하면 다음과 같은 출력이 표시됩니다. o world 이고, 그 입니까?\r 확확?? 온라인 컴파일러에서 동일한 코드를 실행하면 다음과 같은 출력이 나타납니다. Hey this is my first hello world 는 왜 요?\r\r는 캐리지 리턴 문자입니다.단말기 에뮬레이터에게 행의 선두에서 커서를 이동하도록 지시합니다. 커서는 다음 문자가 렌더링되는 위치입니다. 래 a a a, a a a a a a a를 인쇄하는 것.\r..

sourcecode 2022.11.26
반응형