반응형

C 36

EnumProcesses() 대 CreateTool help32Snapshot()

EnumProcesses() 대 CreateTool help32Snapshot() 활성 프로세스와 로드된 모듈을 모두 열거하기 위한 두 Win32 API 함수 EnumProcesses()와 CreateToolhelp32Snapshot() 사이에 차이점이 있는지 궁금합니다.혹은 어떤 것이 다른 것보다 더 나은지, 그리고 그 이유는.다음은 몇 가지 기능에서 얻은 결과입니다. EnumProcesses: 16msec, 207프로세스 CreateTool help32스냅샷: 141msec(16msec), 207개 프로세스 WTSE 수프로세스: 16msec, 207프로세스 WTS 수프로세스Ex(WTS_CURRENT_SESSION): 16msec, 98프로세스 WTSE 수프로세스Ex(WTS_ANY_SESSION): 1..

programing 2023.11.05

const로 정의된 객체의 값을 포인터를 통해 변경할 수 있습니까?

const로 정의된 객체의 값을 포인터를 통해 변경할 수 있습니까? #include int main() { const int a = 12; int *p; p = &a; *p = 70; } 될까요?이것은 "정의되지 않은 행동"입니다. 이것을 시도할 때 어떤 일이 일어날지를 기준으로 예측할 수 없다는 것을 의미합니다.특정 기계, 컴파일러, 프로그램의 상태에 따라 다른 작업을 수행할 수 있습니다. 이 경우 가장 자주 발생하는 것은 "예"입니다. 변수는 상수든 아니든 간에 단지 메모리의 한 위치일 뿐이며, 일정성의 규칙을 어기고 간단히 덮어쓸 수 있습니다. (물론 프로그램의 다른 부분이 일정한 데이터에 의존하고 있다면 심각한 버그를 일으킬 것입니다!) 그러나 경우에 따라서는 -- 대부분의 경우 다음을 위해con..

programing 2023.10.31

메모리를 할당하고 문자열을 c로 저장합니다.

메모리를 할당하고 문자열을 c로 저장합니다. 다음 코드가 왜 작동하지 않는지 궁금합니다. int main(int argc, char **argv) { char *test = (char*) malloc(12*sizeof(char)); test = "testingonly"; free(test); } 고민 끝에 저의 가정은 우선 메모리에 12자를 넣을 공간을 할당하는데 다음 줄의 과제는 스택에 char 배열을 만들고 그 메모리 주소는 테스트를 위해 전달된다는 것이었습니다.so free()는 허용되지 않는 스택의 공간을 해제하려고 합니다.그것이 맞습니까? 그러면 힙에 문자열을 저장하는 올바른 방법은 무엇입니까?다음 방법이 일반적인 방법입니까? int main(int argc, char **argv) { char..

programing 2023.10.31

C/P 스레드 사용: 공유 변수가 변동성이 있어야 합니까?

C/P 스레드 사용: 공유 변수가 변동성이 있어야 합니까? C 프로그래밍 언어와 Pthreads를 쓰레드 라이브러리로 사용합니다. 쓰레드 간에 공유되는 변수/구조를 volatile로 선언해야 합니까?잠금 장치에 의해 보호될 수도 있고 그렇지 않을 수도 있다고 가정할 때(장벽이 있을 수도 있음). pthread POSIX 표준은 이것에 대한 발언권이 있습니까, 이 컴파일러에 의존하는 것입니까, 아니면 둘 다입니까? 추가할 편집:좋은 답변 감사합니다.하지만 자물쇠를 사용하지 않는다면 어떨까요? 예를 들어 장벽을 사용한다면 어떨까요?또는 비교-스왑과 같은 프리미티브를 사용하여 직접적이고 원자적으로 공유 변수를 수정하는 코드...변수에 대한 액세스를 제어하기 위해 잠금 장치를 사용하는 한 변수에 휘발성이 있을 ..

programing 2023.10.26

C에서 명시적 폴스루를 하는 방법

C에서 명시적 폴스루를 하는 방법 새로운 버전의 gcc는 다음을 제공합니다.Wimplicit-fallthrough, 대부분의 스위치 문을 가지는 것이 좋습니다.하지만 모든 케이스 문에서 폴스루를 허용하고 싶은 스위치 문이 하나 있습니다. 명백한 실패를 할 수 있는 방법이 있습니까?저는 다음과 같이 컴파일하는 것을 피하고 싶습니다.Wno-implicit-fallthrough이 파일에 대해서는 편집: 컴파일러 스위치나 프래그마를 통해 경고를 끄지 않고 (가능하다면) 명시적으로 폴을 수행할 수 있는 방법을 찾고 있습니다.쓰임 switch (condition) { case 1: printf("1 "); __attribute__ ((fallthrough)); case 2: printf("2 "); __attrib..

programing 2023.10.21

복합 곱셈 감소를 위한 휴대용 심드 코드 작성 방법

복합 곱셈 감소를 위한 휴대용 심드 코드 작성 방법 나는 복잡한 배열의 곱셈 감소를 계산하기 위해 빠른 심드 코드를 작성하고 싶습니다.표준 C에서 이는 다음과 같습니다. #include complex float f(complex float x[], int n ) { complex float p = 1.0; for (int i = 0; i < n; i++) p *= x[i]; return p; } n많아야 50이 될 겁니다. Gcc는 복잡한 곱셈을 자동 벡터화할 수 없지만 gcc 컴파일러를 가정하게 되어 기쁘고 sse3를 대상으로 하고 싶다는 것을 알았다면 gcc에서 sse3 자동 벡터화를 활성화하는 방법을 팔로우하고 다음과 같이 쓸 수 있습니다. typedef float v4sf __attribute__..

programing 2023.10.21

libav 형식으로 메모리에 있는 파일 읽기

libav 형식으로 메모리에 있는 파일 읽기 현재 서버에서 보낸 작은 비디오 파일을 읽으려고 하는 중입니다. libav 형식을 사용하여 파일을 읽으려면 다음을 호출해야 합니다. av_open_input_file(&avFormatContext, "C:\\path\\to\\video.avi", 0, 0, 0); 문제는 이 경우 파일이 디스크에 있는 것이 아니라 메모리에 있다는 것입니다. 지금 제가 하고 있는 일은 파일을 다운로드해서 임시 이름을 사용해서 디스크에 쓴 다음에 호출하는 것입니다.av_open_input_file매우 깨끗한 해결책이 아닌 임시 파일 이름을 사용합니다. 사실 제가 원하는 것은 다음과 같은 기능입니다.av_open_custom(&avFormatContext, &myReadFunctio..

programing 2023.10.16

a + b + c = 1000인 피타고라스 삼중항 찾기

a + b + c = 1000인 피타고라스 삼중항 찾기 피타고라스 삼중항은 3개의 자연수의 집합으로, a < b < c 에 대하여, a + b = c 예를 들어 3 + 4 = 9 + 16 = 25 = 5입니다. a + b + c = 1000인 피타고라스 삼중항이 정확히 하나 존재합니다.제품 abc를 찾습니다. 출처 : http://projecteuler.net/index.php?section=problems&id=9 코드가 어디서 잘못되었는지는 알 수 없었습니다.C로 된 제 코드는 다음과 같습니다. #include #include #include void main() { int a=0, b=0, c=0; int i; for (a = 0; a= 600 || _ISOC99_SOURCE; or cc -std=..

programing 2023.10.11

input_event structure description (linux/input에서).h)

input_event structure description (linux/input에서).h) input_event 구조에서 사용하는 데이터 유형의 속성이 무엇인지 알려주실 수 있나요? input.h 파일에서는 다음과 같이 정의됩니다. struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; }; 다른 설명은 없어요!구글 검색을 해도 재미있는 게 하나도 없었습니다. 제가 아는건 오직..time에포크로부터 초 또는 밀리초를 제공합니다.value누름 버튼의 코드를 제공합니다.하지만 그 가치는.value저는 재산에 대해 잘 알지 못합니다.제 프로그램에서 키 입력은 6개의 이벤트를 생성합니다.ENTER 키를 누르면 다음 이벤트가..

programing 2023.10.11
반응형