반응형

C 31

c에 더미가 없다고요?

c에 더미가 없다고요? Brian Kernighan과 Dennis Ritchie가 쓴 The C Programming Language를 막 읽기 시작했고, 다음과 같은 문장을 발견했습니다. 이 언어는 함수의 로컬 변수가 제공하는 정적 정의 및 스택 규칙 이외의 스토리지 할당 기능을 정의하지 않으며 힙 또는 가비지 컬렉션이 없습니다. 그래서 이것은 그것이 그 때문이라는 것을 의미합니까?malloc()C가 힙 메모리에 접근하는 것을 즐기는 힙에서 메모리 주소를 반환하는 함수?그리고 나서 꼭 해야만 합니다.malloc다른 언어로 쓰여져 있습니다. 아마도 어셈블리나 B? 바보 같은 의심일 수도 있지만, 저는 그것을 치워야 합니다.감사해요.C 언어 자체는 힙이나 힙이 어떻게 작동해야 하는지 직접적으로 지정하지는 ..

programing 2023.10.13

C - 계산 시간을 알 수 있습니까?

C - 계산 시간을 알 수 있습니까? 컴퓨팅 시간을 측정하는데 get time of day를 사용하는 방법을 알고 있습니까?나는 이 코드로 한 번 측정할 수 있습니다. char buffer[30]; struct timeval tv; time_t curtime; gettimeofday(&tv, NULL); curtime=tv.tv_sec; strftime(buffer,30,"%m-%d-%Y %T.",localtime(&curtime)); printf("%s%ld\n",buffer,tv.tv_usec); 이것은 컴퓨팅 전에 만들어진 것이고, 두 번째 것입니다.그런데 뺄 줄 아세요? 밀리초 안에 결과가 필요합니다.시간 간격을 빼는 방법: gettimeofday(&t0, 0); /* ... */ gettimeo..

programing 2023.10.08

getline의 첫 번째 인수가 "char*" 대신 포인터 "char**"를 가리키는 포인터인 이유는 무엇입니까?

getline의 첫 번째 인수가 "char*" 대신 포인터 "char**"를 가리키는 포인터인 이유는 무엇입니까? 사용합니다.getline한 줄을 읽어내는 기능STDIN. 의 원형.getline다음과 같습니다. ssize_t getline(char **lineptr, size_t *n, FILE *stream); 저는 이것을 http://www.crasseux.com/books/ctutorial/getline.html#getline 에서 얻는 테스트 프로그램으로 사용합니다. #include #include #include int main(int atgc, char *argv[]) { int bytes_read = 1; int nbytes = 10; char *my_string; my_string = (c..

programing 2023.10.03

ARM에 대한 새로운 리브와 함께 GCC를 교차 컴파일: -march와 같은 GCC 옵션을 지정하는 방법?

ARM에 대한 새로운 리브와 함께 GCC를 교차 컴파일: -march와 같은 GCC 옵션을 지정하는 방법? 저는 ARM 타겟에 대한 맥 OS X에 대한 새로운 리브와 함께 GCC를 컴파일했습니다.그러나 libc.a는 -fshort-enums로 컴파일되었으며, ARM을 위해 무언가를 컴파일할 때 -fno-short-enums를 사용하기 때문에 원하지 않습니다.이는 물론 다음과 같습니다. ld: warning: /var/folders/9m/2wnjp9zd71x13cpdpf16y_4r0000gn/T//ccQuEnp6.o uses 32-bit enums yet the output is to use variable-size enums; use of enum values across objects may fail ..

programing 2023.09.28

MSYS 'bash'로 인해 ^C를 트랩하는 프로세스가 파괴되지 않도록 방지

MSYS 'bash'로 인해 ^C를 트랩하는 프로세스가 파괴되지 않도록 방지 콘솔 모드 Windows 응용 프로그램(유닉스에서 포팅)이 있습니다. 원래는 수신할 때 깨끗하게 종료되도록 설계되었습니다(유닉스).SIGINT이 경우에는 원격 네트워크 연결이 종료될 때까지 상당한 시간이 걸릴 수 있습니다. (정상적인 동작이 아니라는 것은 알지만 변경할 수 있는 위치에 있지 않습니다.)프로그램이 싱글 스레드입니다. 나는 둘 중 하나로 덫을 놓을 수 있습니다.signal(SIGINT)(유닉스 아래에서와 같이) 또는 . CMD 아래에서 프로그램이 실행될 때 둘 중 하나가 올바르게 작동합니다.EXE. 그러나 MSYS와 함께 제공되는 "bash" 셸을 사용하면(유닉스 makefiles를 재사용할 수 있으므로 MinGW ..

programing 2023.09.23

C - 정수가 할당되었는지 확인

C - 정수가 할당되었는지 확인 정수가 할당되지 않았는지 확인하려면 어떻게 해야 합니까? int i; /* no assignment */ if (/* conditional statement here to check if int i is unassigned or not */) { printf("Integer is unassigned!\n"); } else { printf("Integer is assigned!\n"); } 그럴수는 없어요.그것은 "정의되지 않은" 내용을 가지고 있을 것입니다. 즉, 그 때 그 메모리 위치에 있는 모든 것을 포함한다는 것을 의미합니다. . . 글로벌 범위에서 i가 선언되지 않는 한 0으로 초기화됩니다.C는 배열에 대한 경계 검사를 고유하게 지원하지 않는 것과 마찬가지로 이를 ..

programing 2023.09.18

C/Unix의 소켓 쌍()

C/Unix의 소켓 쌍() 저는 같은 시스템에 2개의 애플리케이션이 있어서 앞뒤로 소통해야 합니다.제가 조사한 바로는 이것이 프로세스 간 통신이라고 불리며 소켓 쌍()을 사용하는 것이 제 문제에 가장 적합한 방법이라고 생각합니다. C에서 소켓 쌍()으로 소켓을 만드는 것부터 시작하려고 머리를 쥐어뜯고 있습니다.제가 알기로는 소켓은 매우 복잡한 주제이고 제가 초보 C 프로그래머가 되는 것은 분명 이 상황에 도움이 되지 않습니다. 지난 48시간 동안 구글 검색을 하고 튜토리얼 등을 읽었지만 아직도 검색이 되지 않습니다.개념은 이해하지만 코드가 너무 헷갈릴 뿐입니다.저는 이 기사를 몇 번 읽었습니다: http://beej.us/guide/bgnet/html/single/bgnet.html, . 하지만 그것은 ..

programing 2023.09.18

C function 포인터를 void 포인터로 캐스팅

C function 포인터를 void 포인터로 캐스팅 다음 프로그램을 실행하려고 하는데 몇 가지 이상한 오류가 발생합니다. 파일 1.c: typedef unsigned long (*FN_GET_VAL)(void); FN_GET_VAL gfnPtr; void setCallback(const void *fnPointer) { gfnPtr = *((FN_GET_VAL*) (&fnPointer)); } 파일 2.c: extern FN_GET_VAL gfnPtr; unsigned long myfunc(void) { return 0; } main() { setCallback((void*)myfunc); gfnPtr(); /* Crashing as value was not properly assigned in set..

programing 2023.09.18

C 또는 C++ 구조에 대한 특정 엔디안을 강제할 방법이 있습니까?

C 또는 C++ 구조에 대한 특정 엔디안을 강제할 방법이 있습니까? 저는 구조물의 고유성에 관한 몇 가지 질문과 답변을 보았지만, 그것들은 시스템의 고유성을 감지하거나 두 개의 다른 고유성 사이에서 데이터를 변환하는 것에 관한 것이었습니다. 그러나 주어진 구조의 특정한 종말성을 강제할 수 있는 방법이 있다면 지금 하고 싶은 것은 무엇입니까?비트 필드에서 조작하는 수많은 매크로에서 전체를 다시 쓰는 것 외에 좋은 컴파일러 지시나 다른 간단한 해결책이 있습니까? 일반적인 솔루션이 좋겠으나, 특정 gcc 솔루션도 있으면 좋겠습니다. 편집: 왜 엔디안을 강요하는 것이 좋지 않은지 지적해주신 모든 의견에 감사드립니다만, 제 경우에는 그게 바로 제게 필요한 것입니다. 많은 양의 데이터가 특정 프로세서에 의해 생성되..

programing 2023.09.18

typedef-name은 typedef 선언에서 선택 사항입니까?

typedef-name은 typedef 선언에서 선택 사항입니까? 저는 g++-4에서 오류나 경고 없이 다음 코드를 컴파일하는 것을 보고 상당히 놀랐습니다.2: typedef enum test { one }; 제 추측은 만약 당신이 그것을 사용한다면typedef키워드는 다음과 같이 추가 식별자가 필요합니다. typedef enum test { one } test; 이미 언급했듯이 g++-4.2는 경고도 없이 이를 받아들입니다.Clang++ 3.0은 "warning: typedef required"를 경고하고, 마찬가지로 Comeau는 "warning: declaration requiredef"를 경고하며, g++-4.6은 "warning: 'typedef'는 이 선언에서 무시되었습니다."라고 알려줍니다...

programing 2023.09.03
반응형