반응형

c 78

C에서 텍스트 파일 한 줄씩 살펴보기

C에서 텍스트 파일 한 줄씩 살펴보기 나는 CIS 수업을 위해 작은 연습을 하고 있는데 C가 파일에서 읽을 때 사용하는 방법에 매우 혼란스러워.내가 정말 해야 할 일은 한 줄 한 줄씩 파일 한 줄을 읽고 각 줄에서 수집된 정보를 이용하여 몇 가지 조작을 하는 것이다.나는 getline method 등을 사용해 보았지만 운이 없었다.내 코드는 현재 다음과 같다. int main(char *argc, char* argv[]){ const char *filename = argv[0]; FILE *file = fopen(filename, "r"); char *line = NULL; while(!feof(file)){ sscanf(line, filename, "%s"); printf("%s\n", line); }..

Programing 2022.05.17

내 변수는 C에 저장되어 있는 메모리 내의 위치

내 변수는 C에 저장되어 있는 메모리 내의 위치 메모리가 데이터, 힙, 스택, 코드 등 4개 세그먼트로 나뉘는 것을 고려해 글로벌 변수, 정적 변수, 상수 데이터 유형, 로컬 변수(함수에 정의 및 선언), 변수(주함수), 포인터, 동적으로 할당된 공간(몰록 및 콜록 사용)은 메모리에 저장되는 곳이 어디인가? 나는 그들이 다음과 같이 할당될 것이라고 생각한다. 전역 변수 ------> 데이터 정적 변수 ------> 데이터 상수 데이터 유형 ----> 코드 로컬 변수(함수에 선언 및 정의됨) --------> 스택 주함수에 선언되고 정의된 변수 ----> 힙 포人인:char *arrint *arr 힙) -------> 동적으로 할당된 공간(Malloc 및 Calloc 사용) --------> 스택 나는 C..

Programing 2022.05.16

외부와 콘스탄트 혼합

외부와 콘스탄트 혼합 내가 외측과 외측을 혼용할 수 있을까?만약 그렇다면, 순경 한정자는 그것이 선언된 범위 내에서만 그것의 통치를 강요하는가 아니면 그것이 선언된 번역 단위의 선언과 정확히 일치해야 하는가?즉, 다음과 같이 말할 수 있다.extern const int i;심지어 실제 나는 항상이 아니고 그 반대일때도? 응, 같이 써도 돼. 그리고 그래, 실제로 신고된 번역단위의 선언과 정확히 일치해야 해.물론 당신은 언더핸드 C 프로그래밍 대회에 참가하지 않는 한:-) 일반적인 패턴: file.h: extern const int a_global_var; file.c: #include "file.h" const int a_global_var = /* some const expression */; 편집: ..

Programing 2022.05.16

OpenGL 메서드만 사용하여 텍스트를 그리는 방법

OpenGL 메서드만 사용하여 텍스트를 그리는 방법 OpenGL 메서드(즉, OpenGL 메서드) 외에는 사용할 수 있는 옵션이 없음glxxx()방법). 글공법만으로 글씨를 그려야 해.빨간 책을 읽고 난 후, 오직 그 책을 통해서만 가능하다는 것을 이해한다.glBitmap() 수 것이다만약 이것이 유일한 방법이라면, 모든 등장인물에 대한 픽셀 배열 정보에 대해 나를 도와줄 수 있을까?텍스트를 그리는 다른 방법은 없을까?이론 왜 힘든가 TrueType과 OpenType과 같은 인기 있는 글꼴 형식은 벡터 윤곽선 형식이다. 이들은 Bezier 곡선을 사용하여 문자의 경계를 정의한다. 이미지 소스. 특히 OpenGl에 비직선 원형이 없기 때문에(예: OpenGL에 원이나 타원이 없는 이유 참조) 이러한 형식을..

Programing 2022.05.15

C의 함수에 인수로 배열 전달

C의 함수에 인수로 배열 전달 배열이 들어 있는 함수를 인수로 썼고, 배열이란 값을 다음과 같이 전달하여 부른다. void arraytest(int a[]) { // changed the array a a[0] = a[0] + a[1]; a[1] = a[0] - a[1]; a[0] = a[0] - a[1]; } void main() { int arr[] = {1, 2}; printf("%d \t %d", arr[0], arr[1]); arraytest(arr); printf("\n After calling fun arr contains: %d\t %d", arr[0], arr[1]); } 내가 찾은 건 내가 전화했음에도 불구하고arraytest()의 원본 복사본인 값을 전달함으로써 기능한다.int arr..

Programing 2022.05.14

C는 "예측" 루프 구조를 가지고 있는가?

C는 "예측" 루프 구조를 가지고 있는가? 거의 모든 언어에는 루프나 비슷한 것이 있다.C가 하나 있니?예시 코드 좀 올려줄래?C에는 포레치가 없지만, 매크로는 자주 다음과 같은 것을 모방하기 위해 사용된다. #define for_each_item(item, list) \ for(T * item = list->head; item != NULL; item = item->next) 그리고 다음과 같이 사용될 수 있다. for_each_item(i, processes) { i->wakeup(); } 어레이에 대한 반복도 가능하다. #define foreach(item, array) \ for(int keep = 1, \ count = 0,\ size = sizeof (array) / sizeof *(array..

Programing 2022.05.14

지금까지 경험한 것 중 최악의 실제 매크로/사전 프로세서 남용은 무엇인가?

지금까지 경험한 것 중 최악의 실제 매크로/사전 프로세서 남용은 무엇인가? 잠겼어. 이 질문과 대답은질문이 비논리적이지만 역사적 의미가 있기 때문에 잠겨 있다.그것은 현재 새로운 해답이나 상호작용을 받아들이지 않고 있다. 지금까지 경험한 것 중 가장 최악의 현실 세계 매크로/사전 프로세서 남용은 무엇인가? (IOCCC가 *haha*를 조작하지 않은 답변은 없으십니까? 만약 그것이 정말 재미있다면 짧은 조각이나 이야기를 추가해라.목표는 사람들에게 항상 "매크로를 절대 사용하지 말라"고 말하는 대신 무언가를 가르치는 것이다. 추신: 전에 매크로를 사용한 적이 있는데...그러나 대개 나는 "실제" 해결책이 있을 때(실제 해결책이 삽입되어 매크로와 비슷해지더라도) 결국 그것들을 제거한다. 보너스: 매크로가 비 ..

Programing 2022.05.09

(A + B + C) ≠ (A + C + B) 및 컴파일러 재주문

(A + B + C) ≠ (A + C + B) 및 컴파일러 재주문 32비트 정수를 두 개 추가하면 정수 오버플로가 발생할 수 있다. uint64_t u64_z = u32_x + u32_y; 32비트 정수 중 하나를 먼저 캐스트하거나 64비트 정수에 추가할 경우 이러한 오버플로를 방지할 수 있다. uint64_t u64_z = u32_x + u64_a + u32_y; 그러나 컴파일러가 추가 순서를 변경하기로 결정한 경우: uint64_t u64_z = u32_x + u32_y + u64_a; 정수 오버플로는 여전히 발생할 수 있다. 컴파일러가 그러한 재주문을 할 수 있도록 허용되어 있는가, 아니면 결과 불일치를 알아차리고 표현 순서를 그대로 유지할 수 있도록 신뢰할 수 있는가?최적기가 그러한 재주문을 하는..

Programing 2022.05.08

1D 또는 2D 어레이, 어떤 것이 더 빠른가?

1D 또는 2D 어레이, 어떤 것이 더 빠른가? 2D 필드(ax x, y)를 표현해야 하는데 문제가 생겼어.1D 어레이를 사용할 것인가, 2D 어레이를 사용할 것인가? 1D 어레이(y + x*n)에 대한 재계산 지수가 2D 어레이(x, y)를 사용하는 것보다 느릴 수 있다는 것을 상상할 수 있지만, 1D가 CPU 캐시에 있을 수 있다는 것을 상상할 수 있었다. 나는 몇 가지 구글링을 했지만 정적 배열과 관련된 페이지만 찾았다(1D와 2D는 기본적으로 동일하다고 명시).하지만 내 배열은 역동적이어야 해 그래, 뭐가 문제야? 빠른 더 작은(RAM) 다이내믹 1D 어레이 또는 다이내믹 2D 어레이?tl;dr : 당신은 아마도 1차원 접근법을 사용해야 한다. 참고: 코드의 성능은 매우 많은 수의 파라미터에 의존..

Programing 2022.05.08

C++ 및 C에서 함수 매개 변수로 'const int' 대 'int const'

C++ 및 C에서 함수 매개 변수로 'const int' 대 'int const' 고려 사항: int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; } 이 두 기능이 모든 면에서 동일한가, 아니면 차이가 있는가? C언어에 대한 답변에 관심이 있지만 C++언어에 재미있는 것이 있다면 나도 알고 싶다.요령은 선언문을 거꾸로 읽는 것이다(오른쪽부터 왼쪽까지). const int a = 1; // read as "a is an integer which is constant" int const a = 1; // read as "a is a constant integer" 둘 다 같은 것이다.따라서 다음과 같다. a = 2..

Programing 2022.05.08
반응형