C 36

C 표준 라이브러리의 심볼은 C++에 예약되어 있습니까?

C 표준 라이브러리의 심볼은 C++에 예약되어 있습니까? 이것은 다른 질문에 대한 후속 조치입니다. 원래 질문은 다른 문제가 있었지만, (CLang에 따르면) 주요 문제는 C++를 포함한 멋진 C++만 사용되는 다른 기호로 재정의되었다는 것을 깨달아야 했습니다. 다음은 축소된 버전입니다. #include using std::cout; using std::endl; class time { public: int h, min, sec; }; const int full = 60; void canonify(time& pre) // Error here (line 14) { pre.min += pre.sec / full; pre.h += pre.min / full; pre.sec %= full; pre.min %= ..

programing 2023.09.16

새 리눅스 커널 스케줄러를 만드는 방법

새 리눅스 커널 스케줄러를 만드는 방법 스케줄러 소스 코드(2.6.34, kernel/sched.c)를 보면 "플러그블" 스케줄러가 어떻게 사용되는지 알 수 있고, 구현해야 할 인터페이스를 이해하고 있다고 생각합니다.제가 아직 이해할 수 없는 것은 제 코드를 커널에 내장하는 방법입니다.적어도 다른 사이트에 대한 조언은 감사히 받겠습니다. 지금은 커널 소스 트리에서 SCHED_FIFO, SCHED_RR, SCHED_NORMAL을 grepping하고 있어서 정말 더 통찰력 있는 방법을 찾고 있습니다 :-) 편집: 배경으로서, 저는 FreeB를 매우 잘 알고 있습니다.SD 스케줄러(및 FreeB)일반적으로 SD 커널)을 사용하기 때문에 프로세스/스레드 레벨 스케줄링 방법에 대한 포인터를 찾고 있지 않습니다.일..

programing 2023.09.16

왜 일부 컴파일러는 실행 파일의 기본 이름으로 "a.out"을 사용합니까?

왜 일부 컴파일러는 실행 파일의 기본 이름으로 "a.out"을 사용합니까? 대부분의 UNIX C 컴파일러는 기본적으로 실행 파일을 "a.out"이라는 파일에 연결합니다. 왜일까요?이것은 서면 표준입니까 아니면 단지 사실적인 표준 행동입니까?이 컴파일러들이 "a.out"을 생성하는 대신 오류 메시지를 생성하거나 다른 기본 이름을 사용할 경우 무엇이 깨질까요?a.out은 어셈블러 출력을 나타냅니다. 대부분의 컴파일러들이 이 이름을 기본값으로 사용하는 이유가 바로 그것이라고 생각합니다.자세한 내용은 이쪽.A.out은 실제로 UNIX 실행 파일 형식의 이름입니다. (ELF는 다른 것입니다.) 실행 파일에 이름을 명시적으로 지정하지 않으면 컴파일러가 (전통적으로) 해당 이름을 생성합니다. 이 컴파일러들이 "a.o..

programing 2023.09.16

MS Visual C++에서 VLA(Variable Length Array) 활성화?

MS Visual C++에서 VLA(Variable Length Array) 활성화? 어떻게 하면 MS Visual C++에서 C99에 정의된 가변 길이 배열인 VLA를 사용할 수 있습니까? 아니면 전혀 사용할 수 없습니다. 예, C++ 표준이 C89를 기반으로 하고 있고 VLA는 C89 표준에서 사용할 수 없기 때문에 C++에서는 사용할 수 없다는 것을 알고 있지만 MSVC++는 /TC 컴파일러 매개 변수를 사용하여 켤 수 있는 동작인 C 컴파일러여야 합니다.Compile as C Code (/TC)그러나 그렇게 하면 VLA가 활성화되지 않는 것 같고 C++로 빌드할 때 컴파일 프로세스가 실패하고 같은 오류가 발생합니다 (Compile as C++ Code (/TP)). MSVC++ C 컴파일러가 C8..

programing 2023.09.16

GCC: 배열 유형에 불완전한 요소 유형이 있습니다.

GCC: 배열 유형에 불완전한 요소 유형이 있습니다. 나는 이 일을 선언했습니다.struct, 그리고 나는 그 구조들의 배열을 통과하려고 노력합니다.double2배열과 정수)를 함수로 배열합니다.컴파일할 때 gcc에서 "array type has incomplete element type" 메시지가 나타납니다.제가 어떤 문제를 일으켰는지요?struct기능으로? typedef struct graph_node { int X; int Y; int active; } g_node; void print_graph(g_node graph_node[], double weight[][], int nodes); 저도 노력했습니다.struct g_node graph_node[], 하지만 저도 같은 생각을 합니다.다음과 같은..

programing 2023.09.11

두 개의 포맷 문자열이 호환되는지 확인하는 방법은?

두 개의 포맷 문자열이 호환되는지 확인하는 방법은? 예: "Something %d" and "Something else %d" // Compatible "Something %d" and "Something else %f" // Not Compatible "Something %d" and "Something %d else %d" // Not Compatible "Something %d and %f" and "Something %2$f and %1$d" // Compatible 이에 대한 C 기능이 있어야 한다고 생각했는데, 관련 검색 결과가 나오지 않습니다.제 말은 컴파일러가 포맷 문자열과 인수가 일치하는지 확인하고 있기 때문에 이를 확인하기 위한 코드는 이미 작성되어 있습니다.유일한 문제는 어떻게 부를 ..

programing 2023.09.06

"신호 15 수신"이란 무엇입니까?

"신호 15 수신"이란 무엇입니까? Gentoo Linux 클러스터에서 실행되는 SUNDIALS/CVODE(숫자 ODE 솔버)라는 라이브러리를 사용하는 C, MPI 프로그램이 반복 표시되는 원인은 무엇입니까?Signal 15 received.? 그 코드는 MPI, Sundials, Linux, C 또는 누가 발행하고 있습니까? 저는 C, MPI, SUNDIALS/CVODE 및 Linux와 같은 기술을 가진 초보자입니다. 저는 메시지를 검색해도 관련이 있는 것처럼 보이는 것을 찾을 수 없습니다.어디서부터 손을 대야 할지 모르겠어요.(이것은 "도움이 되는 모든 것"이 문자 그대로 받아들여지는 질문 중 하나입니다.) (외시적으로/추후적으로 크롬 사전에서 "구글링"이라는 단어를 인식하지 못하는 이유는 무엇입니까..

programing 2023.08.12

랜드() %7이 항상 0을 반환하는 이유는 무엇입니까?

랜드() %7이 항상 0을 반환하는 이유는 무엇입니까? 이것은 정말 이상한 문제인 것 같습니다. 내 코드는 다음과 같습니다. #import int main (int argc, const char * argv[]) { @autoreleasepool { srand((unsigned int)time(NULL)); int newRandomNumber = 0; newRandomNumber = rand() % 7; NSLog(@"%d", rand() % 7); //This prints out what I expected NSLog(@"newRandomNumber = %d", newRandomNumber); // This always prints out 0! } return 0; } 만약 내가 그 한 줄을 바꾼다면,..

programing 2023.08.07

함수에서 이 포인터 반환

함수에서 이 포인터 반환 함수에서 포인터를 반환하려고 합니다.하지만 분할 오류가 발생하고 있습니다.누가 코드에 무슨 문제가 있는지 말해주세요. #include int *fun(); main() { int *ptr; ptr = fun(); printf("%d", *ptr); } int *fun() { int *point; *point = 12; return point; } 포인터를 사용하기 전에 메모리를 할당합니다.메모리를 할당하지 않는 경우*point = 12정의되지 않은 동작입니다. int *fun() { int *point = malloc(sizeof *point); /* Mandatory. */ *point=12; return point; } 또한 당신의printf틀렸습니다.참조를 취소해야 합니다(..

programing 2023.08.02