반응형

C 135

typedef 구조 vs 구조 정의

typedef 구조 vs 구조 정의 이 질문에는 이미 답변이 있습니다. 왜 구조체를 C로 자주 입력해야 하죠? (15개의 답변) 닫힘5년 전에요. 인데 C프로그래밍을 사용하는 것과 가 있는지 .typedef를 와 사용하지 경우typedef같은 목표를 달성한 것 같아서 전혀 차이가 전혀 없는 것 같아요. struct myStruct{ int one; int two; }; 대. typedef struct{ int one; int two; }myStruct; 일반적인 관용구는 다음 두 가지를 모두 사용합니다. typedef struct S { int x; } S; 서로 다른 정의입니다.논의를 보다 명확하게 하기 위해 다음 문장을 분할합니다. struct S { int x; }; typedef struct S ..

programing 2022.08.18

GCC C 코드의 비정적 선언 다음에 정적 선언을 해결하려면 어떻게 해야 합니까?

GCC C 코드의 비정적 선언 다음에 정적 선언을 해결하려면 어떻게 해야 합니까? 같은 C파일을 다른 버전의 cc로 2개의 다른 머신으로 컴파일 하려고 합니다. .2에서는 gcc 3.2.3이라고 되어 있습니다.warning: 'foo' was declared implicitly 'extern' and later 'static' 4.는 gcc "4.1.2"로 되어 있습니다.error: static declaration of 'foo' follows non-static declaration 양쪽 CFLAGS가 동일.gcc 4.1.2가 gcc 3.2.3처럼 동작하도록 하겠습니다.즉, 이 에러를 단순한 경고로 바꾸는 옵션을 찾습니다.는 이 있었다.static이치노함수 선언을 콜 위쪽으로 이동하면 문제가 해결되었..

programing 2022.08.17

2의 다음 곱셈까지 반올림

2의 다음 곱셈까지 반올림 가장 가까운 2의 거듭제곱을 반환하는 함수를 쓰고 싶습니다.예를 들어 입력이 789일 경우 출력은 1024가 됩니다.루프를 사용하지 않고 일부 비트 연산자를 사용하여 이를 실현하는 방법이 있습니까?Bit Twiddling Hacks를 확인합니다.밑수 2의 대수를 구해야 하고 거기에 1을 더해야 합니다.32비트 값의 예: 다음으로 높은 2의 곱으로 반올림 unsigned int v; // compute the next highest power of 2 of 32-bit v v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; 다른 폭에 대한 확장은 분명해야 한다.이것도 효과가 있을 것 같아요. in..

programing 2022.08.17

Linux에서 C 프로그래밍 언어의 헤더 파일을 찾으려면 어떻게 해야 하나요?

Linux에서 C 프로그래밍 언어의 헤더 파일을 찾으려면 어떻게 해야 하나요? Linux에서 C 프로그램을 작성하고 gcc를 사용하여 컴파일할 때 헤더 파일이 어디에 있는지 항상 궁금해요.를 들어, 여기서 '먹다'는요.stdio.h 일반적으로는,서 는, 「 」입니다.stdbool.h 내가 알고 싶은 것은 그것이 어디에 있는지뿐만 아니라 셸 명령이나 C 프로그래밍 언어 등을 사용하여 그러한 장소를 얻는 방법도 알고 싶다.gcc -H ...정규 컴파일의 부작용으로 모든 포함 파일의 전체 경로를 인쇄합니다.-fsyntax-only또, 출력은 생성되지 않습니다(프로그램에 에러가 있는지 아닌지는 계속 알 수 있습니다).Linux, (Linux, gcc-4.7): $ cat > test.c #include #inc..

programing 2022.08.17

Linux 기반 시스템에서 c 프로그램에서 mqueue를 사용하려면 어떻게 해야 합니까?

Linux 기반 시스템에서 c 프로그램에서 mqueue를 사용하려면 어떻게 해야 합니까? Linux 기반 시스템의 c 프로그램에서 mqueue(메시지 큐)를 사용하려면 어떻게 해야 합니까? 올바른 방법, 예를 들어 사용법을 설명할 수 있는 좋은 코드 예를 찾고 있습니다.다음은 중지하라는 "종료" 메시지를 수신할 때까지 클라이언트로부터 메시지를 수신하는 서버의 간단한 예입니다. 서버의 코드: #include #include #include #include #include #include #include #include "common.h" int main(int argc, char **argv) { mqd_t mq; struct mq_attr attr; char buffer[MAX_SIZE + 1]; int..

programing 2022.08.16

RGB를 열린 상태에서 흑백으로 변환이력서

RGB를 열린 상태에서 흑백으로 변환이력서 RGB 이미지를 흑백(바이너리) 이미지로 변환하는 방법을 알고 싶습니다. 변환 후 변경된 이미지를 디스크에 저장하려면 어떻게 해야 합니까?AFAIK, 그레이스케일로 변환한 다음 2진수로 임계값을 설정해야 합니다. 1. 이미지를 그레이스케일 이미지로 읽기 디스크에서 RGB 이미지를 읽는 경우 다음과 같이 그레이스케일 이미지로 직접 읽을 수 있습니다. // C IplImage* im_gray = cvLoadImage("image.jpg",CV_LOAD_IMAGE_GRAYSCALE); // C++ (OpenCV 2.0) Mat im_gray = imread("image.jpg",CV_LOAD_IMAGE_GRAYSCALE); 2. RGB 이미지를 그레이스케일 이미지로 ..

programing 2022.08.16

malloc+memset이 calloc보다 느린 이유는 무엇입니까?

malloc+memset이 calloc보다 느린 이유는 무엇입니까? 인 것으로 알려져 있다calloc와는 다르다malloc할당되어 있는 메모리를 초기화합니다.와 함께calloc메모리가 0으로 설정되어 있습니다.와 함께malloc메모리는 클리어 되지 않습니다. 그래서 저는 일상 업무에서calloc~하듯이malloc+memset덧붙여서, 저는 재미삼아 다음과 같은 코드를 벤치마크로 작성했습니다. 결과가 혼란스럽다. 코드 1: #include #include #define BLOCK_SIZE 1024*1024*256 int main() { int i=0; char *buf[10]; while(i

programing 2022.08.16

물리 디스크를 표시하는 방법

물리 디스크를 표시하는 방법 의 리스트를 하려면 , 의 「」를 참조해 주세요."\\\\.\PhysicalDrive0"이용할 수 있는.#WMIC wmic은 매우 완벽한 도구입니다. wmic diskdrive list 예를 들어 (너무 많은) 상세 리스트를 제공하는 자세한 내용은 wmic diskdrive list brief #C Sebastian Godelet은 코멘트에서 다음과 같이 언급합니다. C: system("wmic diskdrive list"); 코멘트대로 WinAPI를 호출할 수도 있지만...「C 애플리케이션을 사용해 WMI 로부터 데이터를 취득하는 방법」에 나타나 있듯이, 이것은 매우 복잡합니다(통상은 C 가 아닌 C++ 로 행해집니다). #PowerShell 또는 PowerShell 탑재:..

programing 2022.08.16

범위 내에서 임의의 정수값을 생성하는 방법

범위 내에서 임의의 정수값을 생성하는 방법 이것은 이전에 투고된 질문의 후속 조치입니다. C에서 난수를 생성하는 방법은 무엇입니까? 다이의 측면을 모방하기 위해 1에서 6까지와 같은 특정 범위 내에서 난수를 생성할 수 있기를 바랍니다. 이걸 어떻게 하면 좋을까요?지금까지의 답은 모두 수학적으로 틀렸다. ★★★★rand() % N는, 「」의 하고 있지 않습니다.[0, N)~가 아니면N 、 divides 、 divides 、 divides 、 divides divides into into into into into into into divides dividesrand()) 반환(,, 2의 거듭제곱) (즉, 2의 거듭제곱)의알수.의 모듈리인지 아닌지를 모른다.rand()독립적이다: 그들이 갈 가능성이 있다.0..

programing 2022.08.16

포인터를 전달하는 것이 아니라 C의 값으로 구조물을 통과하는 단점이 있습니까?

포인터를 전달하는 것이 아니라 C의 값으로 구조물을 통과하는 단점이 있습니까? 포인터를 전달하는 것이 아니라 C의 값으로 구조물을 통과하는 단점이 있습니까? 구조가 크면 분명히 많은 데이터를 복사하는 퍼포먼스 측면도 있지만, 작은 구조의 경우 기본적으로 함수에 여러 값을 전달하는 것과 같아야 합니다. 반환값으로 사용하면 더 흥미로울 수 있습니다.C에는 함수의 반환값은 1개뿐이지만, 많은 경우 여러 개가 필요합니다.그래서 간단한 해결책은 그것들을 구조물에 넣고 그것을 돌려주는 것입니다. 이에 대한 반대 또는 반대 이유가 있습니까? 제가 여기서 말하는 것이 모두에게 분명하지 않을 수도 있기 때문에, 간단한 예를 들어 보겠습니다. C에서 프로그래밍하는 경우, 조만간 다음과 같은 함수를 작성하기 시작할 것입니다..

programing 2022.08.16
반응형