반응형

C 28

엄격한 별칭 규칙이 잘못 지정되었습니까?

엄격한 별칭 규칙이 잘못 지정되었습니까? 앞서 설정한 바와 같이 형식의 결합, union some_union { type_a member_a; type_b member_b; ... }; n개의 부재는 n개 + 1개의 물체로 구성되어 있습니다.조합 자체를 위한 하나의 객체와 조합원을 위한 하나의 객체.마지막으로 쓴 조합원이 아닌 조합원을 읽더라도 어떤 순서로든 자유롭게 조합원에게 읽고 쓸 수 있음은 분명합니다.스토리지에 액세스하는 l 값의 유효 유형이 정확하므로 엄격한 앨리어싱 규칙을 위반하지 않습니다. 이것은 각주 95에 의해 더욱 뒷받침되는데, 각주 95는 유형 처벌이 노조의 의도적인 사용 방법을 설명합니다. 엄격한 앨리어싱 규칙에 의해 활성화되는 최적화의 대표적인 예는 다음과 같은 기능입니다. int..

programing 2023.10.24

GCC에서 C11?

GCC에서 C11? C11 코드를 컴파일하려고 합니다.thread.h, 할 수가 없어요.GCC(현재 4.6.2 실행)를 다시 컴파일했고, 다음과 같이 컴파일하려고 합니다.gcc -std=c1x file.c -o file. 저는 g++에서 할 수 있습니다.thread도서관, 즉) 하지만 나는 C에 있을 수 없습니다.thread.h아직 GCC 분포에 포함되지 않았나요?스레딩을 위한 표준 C11 헤더는,것은 아니다.. N1570 초안의 섹션 7.26 참조. 예를 들어 stdio를 포함한 대부분의 C 표준 라이브러리는 gcc 분포에 포함되지 않습니다.대신 gcc는 운영 체제가 제공하는 런타임 라이브러리에 따라 달라집니다.그것은 일반적으로 두 헤더를 모두 포함합니다(예:) 및 라이브러리를 구현하는 실제 코드. 대..

programing 2023.10.24

그 중 하나가 모듈과 이름이 같은 여러 소스 파일로 커널 모듈을 구축하는 것입니다.

그 중 하나가 모듈과 이름이 같은 여러 소스 파일로 커널 모듈을 구축하는 것입니다. 그 중 하나가 모듈과 같은 이름을 가진 여러 개의 소스 파일로 커널 모듈을 구축할 수 개의 소스 파일로 커널 모듈을 만들 수 있습니까? 예를 들어,다음 소스 파일로 "mymodule.ko"를 만들고 싶습니다. 나의 모듈 mymodule_func.c 이 makefile은 작동하지 않습니다. #Makefile obj-m += mymodule.o mymodule-objs := mymodule.o mymodule_func.o 감사해요.커널 메이크 파일을 수정하는 적절한 방법은 다음과 같습니다. # obj-m+= my_module.o #append other source files except my_module.c which wo..

programing 2023.10.19

printf()가 있는 문자열 중심 맞추기

printf()가 있는 문자열 중심 맞추기 기본적으로,printf()문자열을 오른쪽으로 정렬하는 것 같습니다. printf("%10s %20s %20s\n", "col1", "col2", "col3"); /* col1 col2 col3 */ 텍스트를 다음과 같이 왼쪽으로 정렬할 수도 있습니다. printf("%-10s %-20s %-20s", "col1", "col2", "col3"); 텍스트 가운데로 빠르게 이동할 수 있는 방법이 있습니까?아니면 문자열을 다음과 같이 바꾸는 함수를 써야 하나요?test안으로(space)(space)test(space)(space)그 열에 대한 텍스트 너비가 8이면?printf 자체로는 트릭을 수행할 수 없지만 인수에서 읽어 너비를 지정하는 "indirect" 너비를 사..

programing 2023.10.09

아무것도 하지 않기 위해 잠시 블록을 사용하는 것은 나쁜 일입니까?

아무것도 하지 않기 위해 잠시 블록을 사용하는 것은 나쁜 일입니까? 저는 현재 'The C Programming Language' 연습을 하고 있습니다.제 솔루션 중 하나는 다음과 같습니다. int c; while ((c=getchar()) != EOF) { if (c == ' ') { while ((c = getchar()) == ' ') {} // do nothing? putchar(' '); } putchar(c); } 여기서 저는 제 것과 상당히 다른 해결책을 찾았고, 추가 변수를 사용하여 상황을 추적하는 반면, 저는 모든 공간을 건너뛰는 데 시간 루프를 사용합니다.제 솔루션은 약간 지저분하게 느껴지는데, 꼬불꼬불한 교정기 사이에 아무것도 없는 짧은 고리가 있는 것처럼 보이기 때문입니다.저는 이것..

programing 2023.10.09

C 언어의 'volatile' 키워드

C 언어의 'volatile' 키워드 이 질문에는 이미 다음과 같은 답변이 있습니다. C에 휘발성이 필요한 이유는 무엇입니까? (18개 답변) 닫힘9년 전에. C 언어의 휘발성에 대한 튜토리얼을 읽었지만 여전히 이해할 수 없습니다.일부에서는 휘발성이 컴파일러 최적화자에게 이 변수와 관련된 연산이 특정한 방법으로 최적화되어서는 안 된다고 말합니다.즉, 레지스터에서 변수 값이 변경될 때마다 해당 값이 메모리에 영향을 미쳐야 합니다. 또한 일부에서는 휘발성은 값이 이 코드 밖의 방법으로 변경될 수 있음을 의미한다고 말합니다. 저는 두 번째 말을 이해할 수 없습니다.그럼 휘발성 변수는 이 코드 이외의 방법으로 변경될 수 있는 겁니까? 어떻게요?그리고 이 두 진술이 모두 맞습니까?"이 코드 밖의 방법으로 값을 변..

programing 2023.10.04

행 대 장조 대 열 대 장조 혼동

행 대 장조 대 열 대 장조 혼동 저는 이 글을 많이 읽었는데, 읽을수록 혼란스러워집니다. 이해합니다. 되고, 됩니다.행 메이저 행은 메모리에 연속적으로 저장되고, 열 메이저 열은 메모리에 연속적으로 저장됩니다.그래서 만약 우리가 일련의 숫자를 가지고 있다면[1, ..., 9]과 같은 를 얻을 수 있습니다.다. |1, 2, 3| |4, 5, 6| |7, 8, 9| 칼럼 장조(틀리면 수정)는 다음과 같습니다. |1, 4, 7| |2, 5, 8| |3, 6, 9| 이것은 사실상 이전 행렬의 전치입니다. 나의 혼란: 는 아무런 가 없다고 뭐, 저는 별 차이가 없다고 봅니다.에서 (첫과 두 한 값을렬행,열)다로 1, 2, 3, ..., 9 행렬 곱셈이 동일하더라도 첫 번째 연속 요소를 취하고 두 번째 행렬 열과..

programing 2023.10.04

boole 값을 초기 값과 반대로 변경

boole 값을 초기 값과 반대로 변경 이상하게 들릴지도 모르지만 나는 매번 글을 쓰기 귀찮아요. if (threadAlive) { threadAlive = false; } else { threadAlive = true; } int++나 int-같은 것이 bool 값을 그 값의 반대로 바꾸는 것이 있지 않습니까?그냥 이렇게 하면 됩니다. threadAlive = !threadAlive; 네, 있습니다! threadAlive ^= true; (이는 C#농담으로, 가장 일반적인 경우 C/C++/Javascript에서 작동하지 않는 경우가 있습니다(일부 조건에 따라 C/C++/Javascript에서 작동할 수 있음), 하지만 사실입니다!^x or 연산자)이렇게 하면 됩니다. threadAlive = !thre..

programing 2023.10.04

C++ 컴파일러로 사용할 MinGW 파일

C++ 컴파일러로 사용할 MinGW 파일 방금 MinGW를 설치했는데 빈 폴더에 프로그램을 컴파일하는 7.exe 파일이 보입니다. c++.exe g++.exe mingw32-c++.exe mingw32-g++.exe gcc.exe mingw32-gcc.exe mingw32-gcc-4.4.1.exe 나의 작은 프로그램(test prog.cpp)은 각각의 프로그램과 정확하게 컴파일됩니다.a.exebin 폴더에 파일이 생성되고 올바르게 실행됩니다. 그것들과 제가 어떤 것을 사용해야 합니까?또한 컴파일이 성공할 때마다 출력 파일의 이름을 a.exe에서 testprog.exe로 자동 변경하려면 어떻게 해야 합니까?다음은 gcc 명명 규칙을 따릅니다. c++.exe는 c++ 컴파일러 시스템의 전통적인 이름입니다. ..

programing 2023.10.04
반응형