반응형

C 28

C 연산자 /\ 및 \/가 수행한 작업은 무엇입니까?

C 연산자 /\ 및 \/가 수행한 작업은 무엇입니까? 누구나 C에서 자신의 연산자를 "선언"할 수 있습니다. 즉, C 컴파일러 구루이고 C 컴파일러에 대한 소스 코드를 가지고 있다면 말입니다. ;-) 문제를 해결해야 할 추가 질문: C99?gcc에서 이 작업은 어떻게 이루어집니까? 그리고 왜 /\ & \/가 떨어졌을까요? /\ 및 \/ 연산자가 유효한 유형은 무엇입니까? 구글에서 "/\ \/"를 검색하면 당연히 아무것도 반환되지 않습니다.위키백과에 /\ 또는 \/에 대한 페이지가 없습니다.하지만 비슷한 연산자가 XML 문자 개체에 내장되어 있는 것을 발견했습니다! 추가된 출처: I found the offending example in the PDP's cc source file "c00.c": /* *..

programing 2023.09.24

c 프로그램에서 더블 프리 또는 손상(! prev) 오류가 발생

c 프로그램에서 더블 프리 또는 손상(! prev) 오류가 발생 c 프로그램을 실행할 때 다음 오류가 발생합니다. *** glibc detected *** ./a.out: double free or corruption (!prev): 0x080b8008 *** 프로그램이 끝날 때 프리()가 호출되었기 때문이라고 생각하지만, 이에 앞서 멀록의 메모리가 어디서 해방되는지 알 수가 없습니다.코드는 다음과 같습니다. #include #include //malloc #include //sine #define TIME 255 #define HARM 32 int main (void) { double sineRads; double sine; int tcount = 0; int hcount = 0; /* allocate..

programing 2023.09.24

함수 포인터 - 자동 재참조

함수 포인터 - 자동 재참조 이 질문에는 이미 다음과 같은 답변이 있습니다. 닫힘11년 전에. 중복 가능: 함수 포인터의 참조 해제는 어떻게 이루어집니까? void myprint(char* x) { printf("%s\n", x); } int main() { char* s = "hello"; void (*test)(char*); void (*test2)(char*); test = myprint; test2 = &myprint; test(s); (*test)(s); test2(s); (*test2)(s); } 위의 코드가 모두 유효한 이유를 설명해 줄 수 있는 사람이 있습니까?"hello"는 4번 인쇄됩니다.함수 포인터를 적용하면 암묵적으로 탈방어가 됩니까?기본적으로 함수 포인터가 실제로 어떻게 저장되는지..

programing 2023.09.19

음의 부호와 가변 길이 숫자를 고려하기 위해 인쇄 f를 어떻게 패드에 넣습니까?

음의 부호와 가변 길이 숫자를 고려하기 위해 인쇄 f를 어떻게 패드에 넣습니까? 로그 파일에서 몇 가지 숫자를 출력하려고 하는데 플로트를 많이 넣고 싶어요.printf생성할 함수: 058.0 020.0 038.0 -050.0 800.0 150.0 100.0 현재 저는 이 작업을 수행 중입니다. printf("% 03.1f\n", myVar); ...내 Var가 부유물인 곳.해당 문장의 출력은 다음과 같습니다. 58.0 20.0 38.0 -50.0 800.0 150.0 100.0 제가 읽은 바로는 제 코드가 이 게시물의 맨 위에서 언급한 결과물을 만들어 낼 것으로 예상하지만, 분명히 뭔가 잘못된 것입니다.한 번에 하나의 깃발만 사용할 수 있습니까? ..아니면 다른 일이 일어나고 있습니까?너비 지정자는 전체..

programing 2023.09.14

_GNU_SOUR와 __USE_GNU

_GNU_SOUR와 __USE_GNU 사용하고싶습니다CPU_SET, 이것은 정의되어야 하는 glibc 리눅스 특정 매크로입니다.sched.h맨페이지에는 분명히 다음과 같은 내용이 적혀있습니다._GNU_SOURCE매크로가 정의되도록 정의해야 합니다.그런데 머리말을 보니까.CPU_SET다음의 경우에만 정의됩니다.__USE_GNU정의되어 있습니다.#ifdef경비).몇 년 전에 기억나는 것 같아요_GNU_SOURCE필요했습니다. 질문: 1) 분명히 맨페이지가 꺼져있습니다.관리자에게 관리 페이지가 잘못되었음을 어떻게 통지합니까? 2) 언제부터 전환이 되었습니까?_GNU_SOURCE로.__USE_GNU발생(버전 또는 시간 측면에서) 3) 새로운 버전의 glibc가 여전히 사용되는 상황이 있습니까?_GNU_SOURC..

programing 2023.09.14

오류: int 이전의 식이 필요합니다.

오류: int 이전의 식이 필요합니다. 다음 코드를 시도해보니 오류가 발생합니다. if(a==1) int b =10; 그러나 다음은 구문론적으로 정확합니다. if(a==1) { int b = 10; } 왜 이러한가?이것은 사실 상당히 흥미로운 질문입니다.처음 보는 것처럼 간단하지 않습니다.참고로 N1570에 정의된 최신 C11 언어 문법을 바탕으로 하겠습니다. 이 질문의 직관에 어긋나는 부분은 다음과 같습니다. 이것이 맞다면 C: if (a == 1) { int b = 10; } 그렇다면 왜 이것 또한 C가 맞지 않는 것일까요? if (a == 1) int b = 10; 내 말은, 한 줄 조건이if교정기가 있든 없든 진술은 괜찮겠죠? 답은 문법에 있습니다.ifC 표준에 의해 정의된 바와 같이 진술.제가 ..

programing 2023.09.09

동일한 디바이저일 때 빠른 AVX512 모듈로

동일한 디바이저일 때 빠른 AVX512 모듈로 저는 잠재적 요인 소수(n!+-1 형식의 수)에 대한 나눗셈을 찾으려고 노력했고, 최근에 스카이레이크-X 워크스테이션을 구입했기 때문에 AVX512 지침을 사용하여 속도를 높일 수 있을 것이라고 생각했습니다. 알고리즘은 간단하며 주요 단계는 모듈로를 동일한 인수에 대해 반복적으로 적용하는 것입니다.큰 범위의 n개 값을 루프하는 것이 중요합니다.다음은 c(P는 소수의 표)로 작성된 순진한 접근법입니다. uint64_t factorial_naive(uint64_t const nmin, uint64_t const nmax, const uint64_t *restrict P) { uint64_t n, i, residue; for (i = 0; i < APP_BUFLE..

programing 2023.09.04

Intel 프로세서와 AMD 프로세서의 어셈블리어가 동일합니까?

Intel 프로세서와 AMD 프로세서의 어셈블리어가 동일합니까? C 언어는 이식성을 달성하기 위해 Unix를 작성하는 데 사용되었습니다. 서로 다른 컴파일러를 사용하여 컴파일된 동일한 C 언어 프로그램이 서로 다른 기계 명령을 생성합니다.Windows OS가 Intel 및 AMD 프로세서에서 모두 실행될 수 있는 이유는 무엇입니까?AMD와 인텔 프로세서(*)는 공통적으로 많은 명령어 집합을 가지고 있기 때문에 컴파일러나 어셈블러가 두 개 모두에서 "동일한" 바이너리 코드를 작성할 수 있습니다. 그러나 한 제조업체의 다른 프로세서 제품군도 일반적으로 "확장" 또는 기타 명령어 집합을 가지고 있습니다.x87 보조 프로세서를 무시하고, 이것이 마케팅 포인트가 된 것을 처음 기억하게 된 것은 모든 것이 갑자기 ..

programing 2023.08.25

GDB 및 C를 위한 멀티스레드 디버깅 튜토리얼

GDB 및 C를 위한 멀티스레드 디버깅 튜토리얼 닫힘.이 질문은 충족되지 않습니다.스택 오버플로 지침입니다.현재 답변을 수락하고 있지 않습니다. 도구, 라이브러리 또는 즐겨찾는 오프사이트 리소스를 추천하거나 찾는 질문은 의견이 많은 답변과 스팸을 유인하는 경향이 있기 때문에 스택 오버플로의 주제에서 벗어나 있습니다.대신 문제를 설명하고 문제를 해결하기 위해 지금까지 수행된 작업을 설명합니다. 9년 전에 문을 닫았습니다. 이 질문을 개선합니다. 멀티 스레드 C 코드를 디버깅하기 위한 좋은 GDB(또는 다른 리눅스 디버거) 튜토리얼을 아는 사람이 있습니까?간단한 예시가 포함된 것을 찾고 있습니다.구글에서 검색했습니다.일부 링크를 찾았습니다.도움이 될 것 같습니다. redhat.com - 여러 스레드가 있는 ..

programing 2023.08.25

C에서 소켓 연결 상태를 찾는 방법은 무엇입니까?

C에서 소켓 연결 상태를 찾는 방법은 무엇입니까? TCP 연결이 되어 있습니다.서버는 클라이언트에서 데이터를 읽기만 합니다.이제 연결이 끊기면 클라이언트가 파이프에 데이터를 쓰는 동안 오류가 발생하지만(파손된 파이프) 서버는 여전히 해당 파이프에서 수신합니다.연결 상태가 UP인지 아닌지 알 수 있는 방법이 있습니까?다음과 같이 getsockopt를 호출할 수 있습니다. int error = 0; socklen_t len = sizeof (error); int retval = getsockopt (socket_fd, SOL_SOCKET, SO_ERROR, &error, &len); 소켓이 작동하는지 테스트하려면: if (retval != 0) { /* there was a problem getting th..

programing 2023.08.05
반응형