반응형

C 251

.o 파일 대 .a 파일

.o 파일 대 .a 파일 이 두 파일 타입의 차이점은 무엇인가?실행 파일을 구성하는 동안 내 C++ 앱이 두 가지 유형 모두에 대해 링크되는 것을 본다. .a 파일을 만드는 방법?링크, 참고문헌, 그리고 특히 예시는 높이 평가된다..o파일은 객체다.컴파일러의 출력물이며 링커/라이브러리맨에 대한 입력물이다. .a파일은 보관 파일이다.이들은 객체 또는 정적 라이브러리의 그룹이며 링커에 입력되기도 한다. 추가 내용 나는 너의 질문에서 "예시" 부분을 알아차리지 못했다.일반적으로 정적 라이브러리를 생성하기 위해 makefile을 사용한다. AR = ar CC = gcc objects := hello.o world.o libby.a: $(objects) $(AR) rcu $@ $(objects) %.o: %.c ..

programing 2022.05.19

왜 "while (!fe (file) )"가 항상 틀리는가?

왜 "while (!fe (file) )"가 항상 틀리는가? 사용의 잘못된 점feof()읽기 루프를 제어하기 위해서?예를 들면 다음과 같다. #include #include int main(int argc, char **argv) { char *path = "stdin"; FILE *fp = argc > 1 ? fopen(path=argv[1], "r") : stdin; if( fp == NULL ){ perror(path); return EXIT_FAILURE; } while( !feof(fp) ){ /* THIS IS WRONG */ /* Read and process data from file… */ } if( fclose(fp) != 0 ){ perror(path); return EXIT_FAIL..

programing 2022.05.18

{ A=a; B=b; }의 경우 "B=b" 이전에 "A=a"가 엄격히 실행되나?

{ A=a; B=b; }의 경우 "B=b" 이전에 "A=a"가 엄격히 실행되나? 가정하다ABa, 그리고b 변수들, 모든 수 있는 .ABa, 그리고b하다하다. 과 같은 코드에 대해라다음 코드의 경우: A = a; B = b; C 및 C++ 표준이 명시적으로 필요한지 여부A=a전에 엄격히 집행되다B=b의 가 ? ?인 것을 하면.ABa, 그리고b모두 다른가? 컴파일러가 최적화 등의 목적으로 두 문장의 실행 순서를 바꿀 수 있는가? 내 질문에 대한 대답이 C와 C++에서 다르다면 둘 다 알고 싶다. 편집: 질문의 배경은 다음과 같다.보드 게임 AI 설계에서 최적화를 위해 사람들은 자물쇠가 없는 공유 해시 테이블을 사용하며, 정확성은 우리가 추가하지 않으면 실행 순서에 따라 크게 달라진다.volatile제한의두 ..

programing 2022.05.18

C에서 값을 교환하는 가장 빠른 방법은 무엇인가?

C에서 값을 교환하는 가장 빠른 방법은 무엇인가? 두 개의 정수를 교환하고 싶고, 다음 두 가지 구현 중 어떤 것이 더 빠를지 알고 싶다.온도 변수를 사용하는 확실한 방법: void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } 또는 대부분의 사람들이 본 xor 버전: void swap(int* a, int* b) { *a ^= *b; *b ^= *a; *a ^= *b; } 첫 번째는 여분의 레지스터를 사용하는 것처럼 보이지만, 두 번째 것은 세 개의 로드와 상점을 하는 반면 첫 번째는 각각 두 개만 하는 것이다.누가 나에게 어떤 것이 더 빠르고 왜 그런지 말해줄 수 있니?왜 더 중요한지.2번은 종종 그것을 하는 "깨끗한" 방법으로 인용된다.사..

programing 2022.05.18

Memset 정의 및 사용

Memset 정의 및 사용 그 기능의 유용성은 무엇인가?memset()?. 정의:ptr이 가리키는 메모리 블록의 첫 번째 숫자 바이트를 지정된 값(서명이 없는 문자로 해석됨)으로 설정한다. 이것은 메모리 주소에 값을 하드 코딩한다는 것을 의미하는가? memset(&serv_addr,0,sizeof(serv_addr)내가 이해하려고 노력하는 예야 누군가가 아주 간단하게 설명해 주시겠습니까?memset()비교적 간단한 작업의 매우 빠른 버전: void* memset(void* b, int c, size_t len) { char* p = (char*)b; for (size_t i = 0; i != len; ++i) { p[i] = c; } return b; } 그것은memset(b, c, l)을 결정하다l주소..

programing 2022.05.18

무엇이 자바를 C보다 구문 분석하기 쉽게 하는가?

무엇이 자바를 C보다 구문 분석하기 쉽게 하는가? 나는 C와 C++의 문법이 문맥에 민감하다는 사실을 알고 있으며, 특히 C의 "독자 해킹"이 필요하다.한편, 나는 두 언어의 상당한 유사성에도 불구하고, 당신이 단지 두 개의 머리 모양 토큰으로 자바를 구문 분석할 수 있다는 인상을 받고 있다. C에 대해 무엇을 바꾸어야 구문 분석하기 쉽게 만들 수 있을까? C의 문맥 감수성에 대해 내가 본 모든 예는 기술적으로는 허용되지만 끔찍하게 이상하기 때문에 나는 묻는다.예를 들어, foo (a); 함수를호출할 수 있음 보이드의 공백을 함수를 호출할 수 있다.foo주장 논박하여와a. 혹은, 또는,선언할 수도 있다를 선언할 수 있다.a형식 타입의 물건이다가 되기 위해 물체이다.foo하지만 괄호도 쉽게 없앨 수 있어...

programing 2022.05.17

munmap_properties(): 잘못된 포인터

munmap_properties(): 잘못된 포인터 나는 내 프로그램에서 오류를 발견했고 간단한 것을 쓰기로 결정했어. 무슨 일이 일어나고 있는지 이해하는 데 도움이 될 거야.여기 있다: #include #include char * first() { char * word = malloc(sizeof(char) * 10); word[0] = 'a'; word[1] = 'b'; word[2] = '\0'; return word; } char * second () { char * word = malloc(sizeof(char) * 10); word = "ab"; return word; } int main () { char * out = first(); printf("%s", out); free(out); ou..

programing 2022.05.16

SIGPINPY를 방지하는 방법(또는 올바르게 처리)

SIGPINPY를 방지하는 방법(또는 올바르게 처리) 나는 TCP나 로컬 유닉스 소켓의 연결을 받아들이고 간단한 명령을 읽고 (명령에 따라) 회신을 보내는 작은 서버 프로그램을 가지고 있다. 문제는 고객이 답변에 관심이 없을 수 있고 때로는 일찍 퇴근할 수도 있다는 점이다.그래서 그 소켓에 쓰는 것은SIGPIPE내 서버를 망가뜨릴 거야 여기서 충돌을 막기 위한 최선의 방법은 무엇인가?줄의 반대쪽이 아직도 읽고 있는지 확인할 수 있는 방법이 있을까?(select()소켓이 쓰기 가능하다고 항상 말하는 것처럼 여기서는 작동하지 않는 것 같다.아니면 그냥 잡을까?SIGPIPE그걸 무시하는 게 어때?당신은 일반적으로 그 일을 무시하길 원한다.SIGPIPE코드에서 직접 오류를 처리하십시오.C의 신호 핸들러에는 그들..

programing 2022.05.16

scanf를 사용하여 공백 입력을 허용하려면 어떻게 해야 하는가?

scanf를 사용하여 공백 입력을 허용하려면 어떻게 해야 하는가? 다음 코드 사용: char *name = malloc(sizeof(char) + 256); printf("What is your name? "); scanf("%s", name); printf("Hello %s. Nice to meet you.\n", name); 사용자는 자신의 이름을 입력할 수 있지만 다음과 같은 공간이 있는 이름을 입력할 경우Lucas Aardvark,scanf()그냥 모든 것을 잘라버리다Lucas어떻게 만들까?scanf()공간을 허용하다사람(특히 초심자)은 절대 사용해서는 안 된다.scanf("%s")또는gets()또는 입력이 항상 특정 형식(아마도 그때도 아닐 것이다)이라는 것을 확실히 알지 못하는 한 버퍼 오버플..

programing 2022.05.16

스트르토크()는 어떻게 그 문자열을 C에서 토큰으로 나누는가?

스트르토크()는 어떻게 그 문자열을 C에서 토큰으로 나누는가? 의 작업을 설명해 주시오.strtok()이 으로 쪼개어 있다매뉴얼에 따르면 끈을 토큰으로 쪼갠다고 되어 있다.나는 매뉴얼로 그것이 실제로 무엇을 하는지 이해할 수 없다. 나는 시계를 추가했다.str그리고*pch루프가 처음 발생했을 때 작동하는지 확인하기 위해str"이것"에 불과했다.아래 나온 출력이 화면에 어떻게 출력되었는가? /* strtok example */ #include #include int main () { char str[] ="- This, a sample string."; char * pch; printf ("Splitting string \"%s\" into tokens:\n",str); pch = strtok (str,"..

programing 2022.05.16
반응형