반응형

C 33

Windows 터미널을 통해 EOF를 보내는 방법

Windows 터미널을 통해 EOF를 보내는 방법 K&R 북에서 예제 1.9를 이해하려고 하는데 EOF를 어떻게 보내야 하는지 모르겠어요.일부 정보원은 Ctr+Z를 언급했지만, 이는 단순히 프로그램을 종료하는 것입니다.어떻게든 Enter와 Ctrl+Z, 그리고 Ctrl+V의 조합으로 EOF를 보낼 수 있었지만 재생할 수 없습니다. #include #define MAXLINE 1000 main() { int len; int max; char line[MAXLINE]; char save[MAXLINE]; max = 0; while((len = getline_my(line, MAXLINE)) > 0) if(len > max) { max = len; copy(line, save); } if(max > 0) pr..

code 2023.11.04

argv 변경이 가능한가요 아니면 수정본을 만들어야 하나요?

argv 변경이 가능한가요 아니면 수정본을 만들어야 하나요? 제 애플리케이션에는 잠재적으로 엄청난 수의 인수가 전달될 가능성이 있기 때문에 인수를 필터링된 목록에 복제하는 경우의 기억을 피하고 싶습니다.나는 그것들을 제자리에서 필터링하고 싶지만 argv 배열 자체나 그것이 가리키는 데이터를 엉망으로 만드는 것은 아마도 바람직하지 않을 것이라고 꽤 확신합니다.좋은 의견이라도 있나?C99 표준은 수정에 대해 이렇게 말합니다.argv(그리고argc): 매개 변수 argc 및 argv와 argv 배열이 가리키는 문자열은 프로그램에 의해 수정 가능해야 하며, 프로그램 시작과 프로그램 종료 사이에 마지막으로 저장된 값을 유지해야 합니다. argv가 메인 메소드로 전달되면 다른 C 어레이처럼 처리할 수 있습니다. 원..

code 2023.11.04

#토큰 없이 식별자 정의

#토큰 없이 식별자 정의 다음 문장의 의미는 무엇입니까? #define FAHAD 나는 다음과 같은 진술을 잘 알고 있습니다. #define FAHAD 1 그러나 토큰이 없는 #defin 문은 무엇을 의미합니까?그것이 상수 정의와 비슷하다는 것입니까?값이 없는 상수를 정의하는 것은 전처리기에 대한 플래그 역할을 하며 다음과 같이 사용할 수 있습니다. #define MY_FLAG #ifdef MY_FLAG /* If we defined MY_FLAG, we want this to be compiled */ #else /* We did not define MY_FLAG, we want this to be compiled instead */ #endif 라는 뜻입니다.FAHAD정의되어 있습니다. 나중에 다음을..

code 2023.10.30

C에서 상수를 문장으로 사용할 수 있는 이유는 무엇입니까?

C에서 상수를 문장으로 사용할 수 있는 이유는 무엇입니까? 아래 프로그램에 오류가 없는 이유는 무엇입니까? int main (void) { "ANGUS"; 1; 3.14; return 0; } 이러한 각 문장은 값을 평가하는 표현이며, 그런 다음 폐기됩니다.반환 값을 사용하지 않고 int, char 또는 float를 반환하는 함수를 호출한 경우와 비교합니다.그것도 가치를 평가하는 표현입니다. 호출자가 관심을 가질 수도 있고 가지지 않을 수도 있는 값을 반환하는 기능을 갖는 것은 드문 일이 아닙니다. 예를 들어,printf("%d", 9001)인쇄된 문자 수를 반환합니다.발신자는 반환된 번호를 사용할 수도 있고 그냥 무시할 수도 있습니다. 만약 당신이 반환 값을 무시할 때마다 컴파일러가 불평한다면, 당신은..

code 2023.10.30

증분 피연산자로 l 값이 필요

증분 피연산자로 l 값이 필요 gcc 4.4.4 내가 뭘 잘못하고 있는 거지? char x[10]; char y[] = "Hello"; while(y != NULL) *x++ = *y++; 어떤 조언이든 감사드립니다.x++의 짧은 형태입니다.x = x + 1.하지만,x여기 배열이 있고 배열의 주소를 수정할 수 없습니다.당신 변수의 경우도 마찬가지입니다.y너무. 배열을 증가시키는 대신 정수를 선언할 수 있습니다.i그리고 그 다음에 접근하는 증가를 합니다.i배열의 제 인덱스입니다. char x[10], y[5] = "Hello"; int i = 0; while (y[i] != 0) { x[i] = *y[i]; i++; } x[i] = 0; "어레이는 포인터"라는 일반적인 오해에 빠졌을 가능성이 높습니다. 즉..

code 2023.10.20

size_tvsint in C++ 및/또는 C

size_tvsint in C++ 및/또는 C C++ 에서 A 를 합니까를 는 무엇입니까?size_typeint? 만약 우리가 스스로 구조물을 만들고 있다면, 우리는 또한 다음과 같이 사용하도록 권장되어야 합니다.size_type?으로.size_t어떤 것의 크기를 측정할 때마다 사용해야 합니다.입니다는 합니다.size_t ~ 0과 0합니다 합니다.SIZE_MAXsSIZE_MAX필요한 건 65,535... C++와 C 표준의 다른 흥미로운 제약 조건은 다음과 같습니다. sizeof()이다.size_t부호가 없는 정수입니다. operator new()다로 합니다.size_t size_t됩니다에 되어 있습니다. SIZE_MAX됩니다에 되어 있습니다.C99에는 있지만 C++98에는 언급되어 있지 않습니까?! s..

code 2023.10.15

포인터를 리터럴(또는 상수) 문자 배열( 문자열)로 되돌리기?

포인터를 리터럴(또는 상수) 문자 배열( 문자열)로 되돌리기? 이것이 틀렸다는 것을 압니다. char* getSomething() { char szLocal[5]; /* put something in the char array somehow */ return szLocal; } szLocal은 함수가 돌아온 후 언제쯤 파괴될 수 있기 때문입니다. 근데 이거 괜찮아요? char* getSomethingElse() { return "something else"; } 그건 사실 괜찮아요.문자열 리터럴은 일반적으로 프로그램이 실행되는 동안 사용할 수 있는 불변 메모리 영역에 할당됩니다. c/c++가 문자열 리터럴을 할당하는 시기에 대한 답도 참조하십시오.할당 측면에서는 괜찮습니다. 문자열 리터럴은 암시적으로st..

code 2023.10.15

C에 배열의 길이를 돌려주는 표준 함수가 있습니까?

C에 배열의 길이를 돌려주는 표준 함수가 있습니까? C에 배열의 길이를 돌려주는 표준 함수가 있습니까?종종 다른 답변에서 설명된 기술은 눈에 쉽게 보이게 하기 위해 매크로에 캡슐화됩니다.다음과 같은 경우: #define COUNT_OF( arr) (sizeof(arr)/sizeof(0[arr])) 는 인덱스 (') 합니다에 합니다.[]0가 C++됩니다를 과 함께 에서 매크로를 됩니다.operator[]()을 할 컴파일러는 나쁜 결과를 주는 대신 불평을 할 것입니다. 그러나 배열 대신 포인터를 전달할 경우 매크로가 자동으로 나쁜 결과를 제공합니다. 이것이 이 기법을 사용할 때 발생하는 주요 문제 중 하나입니다. 저는 최근 Google Chrome의 코드베이스에서 훔쳐온 더 복잡한 버전을 사용하기 시작했습니..

code 2023.10.10

C의 이 이상한 함수 정의 구문은 무엇입니까?

C의 이 이상한 함수 정의 구문은 무엇입니까? 이 질문에는 이미 다음과 같은 답변이 있습니다. 함수 선언 대 프로토타입에 대한 대안(K&R) C 구문 (6개 답변) 닫힘8년 전에. 최근에 GNU 바이슨을 사용하면서 몇 가지 함수 정의를 본 적이 있습니다. static VALUE ripper_pos(self) VALUE self; { //code here } 왜 유형은self괄호 밖에?이것이 유효한 C입니까?이는 파라미터의 유형을 별도로 선언하는 오래된 K&R 스타일 함수 파라미터 선언입니다. int func(a, b, c) int a; int b; int c; { return a + b + c; } 이는 함수 매개 변수를 선언하는 보다 현대적인 방법과 동일합니다. int func(int a, int b,..

code 2023.10.05

C 프로그램이 종료하지 않고 코어 덤프를 생성할 수 있는 방법은 무엇입니까?

C 프로그램이 종료하지 않고 코어 덤프를 생성할 수 있는 방법은 무엇입니까? 나는 특정 상황에서 코어 덤프를 생산하기 위한 C 프로그램을 원합니다.이것은 프로덕션 환경에서 실행되는 프로그램으로, 다른 종류의 디버깅 코드를 조정하기 위해 쉽게 중지되고 다시 시작되지 않습니다.또한 프로덕션 환경이기 때문에 abort()라고 부르고 싶지 않습니다.조사 중인 문제는 비생산 환경에서 쉽게 복제되지 않습니다.제가 원하는 것은 프로그램이 특정 문제를 감지할 때, 가능하면 파일 이름을 바꿀 수 있는 충분한 정보를 가지고 코어 덤프를 자체적으로 생성한 후 계속하는 것입니다.void create_dump(void) { if(!fork()) { // Crash the app in your favorite way here *..

code 2023.10.05
반응형