반응형

C 27

char*str={"foo",...의 차이점은 무엇입니까?} 그리고 charstr[5]={"foo",...} 배열 정의?

char*str={"foo",...의 차이점은 무엇입니까?} 그리고 charstr[5]={"foo",...} 배열 정의? 사례 1: 글을 쓸 때 char*str={"what","is","this"}; 그리고나서str[i]="newstring";반면에 유효합니다.str[i][j]='j';유효하지 않습니다. 사례 2: 글을 쓸 때 char str[][5]={"what","is","this"}; 그리고나서str[i]="newstring";반면에 유효하지 않습니다.str[i][j]='J';유효합니다. 그것은 왜 그럴까?저는 이미 다른 답을 읽고 많이 혼란스러워 하는 초보자입니다.우선: 제안: 배열은 포인터가 아니며 그 반대도 마찬가지입니다!! 그건 그렇지만, 이 특정한 시나리오를 깨우치기 위해서는 첫번째 경우에..

sourcecode 2023.11.04

C에서 런타임에 매크로 변경

C에서 런타임에 매크로 변경 매크로를 정의했습니다.하지만 이 값은 조건에 따라 런 타임에 변경해야 합니다.어떻게 구현할 수 있습니까?매크로는 소스 파일이 컴파일하기도 전에 값에 따라 전처리기로 대체됩니다.실행 시 매크로 값을 변경할 수 있는 방법은 없습니다. 여러분이 이루고자 하는 목표에 대해 조금만 더 설명해 주신다면 틀림없이 매크로를 포함하지 않은 다른 문제 해결 방법이 있을 것입니다.매크로 자체를 변경할 수는 없지만 매크로를 포함하는 식의 값을 변경할 수도 있습니다.아주 어리석은 예를 들자면: #include #define UNCHANGEABLE_VALUE 5 #define CHANGEABLE_VALUE foo int foo = 5; int main() { printf("%d %d\n", UNCHA..

sourcecode 2023.11.04

C의 함수명은 어떤 타입입니까?

C의 함수명은 어떤 타입입니까? 이 질문에는 이미 다음과 같은 답변이 있습니다. C의 함수 크기가 항상 1바이트인 이유는 무엇입니까? (4개 답변) 닫힘9년 전에. C에서는 항상 이해했어요func그리고.&func동등했습니다.둘 다 제 Win64 시스템에서 8바이트인 타입 포인터여야 한다고 생각합니다.하지만 저는 그냥 이것을 시도해 보았습니다. #include int func(int x, int y) { printf("hello\n"); } int main() { printf("%d, %d\n", sizeof(&func), sizeof(func)); return 0; } 그리고 그 결과를 기대하고 있습니다.8, 8그것을 받고 놀랐습니다.8, 1대신. 왜 이러한가?정확히 어떤 유형이. func? 그것은 타입..

sourcecode 2023.10.30

iPhone ObjectiveC Apps의 C/C++ 정적 라이브러리 사용

iPhone ObjectiveC Apps의 C/C++ 정적 라이브러리 사용 C++를 내부적으로 사용하고 이것을 라이브러리 사용자에게 숨기는 C static library API를 가질 수 있습니까? 휴대용 C++ 라이브러리를 작성하여 아이폰 애플리케이션에 정적으로 연결하고자 합니다. Max OS X 'static library' 템플릿을 사용하여 Xcode 프로젝트를 만들고 소스를 가로채 복사했으며 (외부 "C")를 사용하여 (예외 사항을 처리하기 위해) Capper를 작성했습니다. 생성된 라이브러리(.a 파일)를 다른 코코아 아이폰 어플리케이션에서 사용하려고 합니다. 라이브러리의 구현 클래스에서 호출 Objective C 파일에 (.mm) 확장자를 사용하고 구현 클래스에 (.cpp) 확장자를 사용하면 ..

sourcecode 2023.10.30

란드()는 때때로 같은 것을 연속적으로 반환합니까?

란드()는 때때로 같은 것을 연속적으로 반환합니까? 싱글 스레드 프로그램이 두 번 연속 호출할 때 같은 반환 값을 얻을 수 있는지 궁금합니다.rand()? 그렇다면, 이 주장이 과연 불붙을 수 있을까요? assert(rand() != rand()); 한 가지 예를 찾을 수 있다면, 질문에 대한 답은 "예"입니다. #include #include int main(int argc, char* argv[]) { unsigned int i; for(i = 0; ; i++) { int r = rand(); if (r == rand()) { printf("Oops. rand() = %d; i = %d\n", r, i); break; } } return 0; } 인쇄물Oops. rand() = 3482; i = 32..

sourcecode 2023.10.30

GCC 앨리어싱 확인/제한 포인터 포함

GCC 앨리어싱 확인/제한 포인터 포함 다음 두 가지 토막글을 생각해 보십시오. #define ALIGN_BYTES 32 #define ASSUME_ALIGNED(x) x = __builtin_assume_aligned(x, ALIGN_BYTES) void fn0(const float *restrict a0, const float *restrict a1, float *restrict b, int n) { ASSUME_ALIGNED(a0); ASSUME_ALIGNED(a1); ASSUME_ALIGNED(b); for (int i = 0; i < n; ++i) b[i] = a0[i] + a1[i]; } void fn1(const float *restrict *restrict a, float *restrict..

sourcecode 2023.10.25

(빈 구조)의 크기와 (빈 배열을 가진 구조)의 크기의 차이?

(빈 구조)의 크기와 (빈 배열을 가진 구조)의 크기의 차이? 다음과 같이 두 가지 구조를 정의합니다. struct EmptyStruct{ }; struct StructEmptyArr{ int arr[0]; }; int main(void){ printf("sizeof(EmptyStruct) = %ld\n", sizeof(EmptyStruct)); printf("sizeof(StructEmptyArr) = %ld\n", sizeof(StructEmptyArr)); return 0; } Ubuntu 14.04, x64에서 gcc (g++) 4.8.4로 컴파일되었습니다. 출력(gcc 및 g++ 모두에 대해): sizeof(EmptyStruct) = 1 sizeof(StructEmptyArr) = 0 그 이유를..

sourcecode 2023.10.20

리눅스 커널에서 이상한 코드를 발견했는데 누가 설명해줄 수 있나요?

리눅스 커널에서 이상한 코드를 발견했는데 누가 설명해줄 수 있나요? initramfs.c에서 이것을 발견했습니다. 이 구문을 본 적이 없는데 누가 이것이 무엇을 하는지 설명해줄 수 있나요? static __initdata int (*actions[])(void) = { [Start] = do_start, [Collect] = do_collect, [GotHeader] = do_header, [SkipIt] = do_skip, [GotName] = do_name, [CopyFile] = do_copy, [GotSymlink] = do_symlink, [Reset] = do_reset, }; 소스 코드 (366행): initramfs.c인덱스별 순서 외 배열 초기화입니다.글을 쓰는 것과 같습니다. actio..

sourcecode 2023.10.15

부동 소수점 값 27개 집합에서 중위수를 선택하는 가장 빠른 코드 C/C++

부동 소수점 값 27개 집합에서 중위수를 선택하는 가장 빠른 코드 C/C++ 이것은 잘 아는 선택 알고리즘입니다.http://en.wikipedia.org/wiki/Selection_algorithm 를 참조하십시오. 3x3x3 복셀 값 집합의 중앙값을 구하려면 필요합니다.볼륨이 10억 복셀로 구성되어 있고 알고리즘이 재귀적이기 때문에 조금 빠른 것이 좋습니다.일반적으로 값이 비교적 가깝다고 예상할 수 있습니다. 제가 지금까지 시도해 본 알고리즘 중 가장 빨리 알려진 것은 빠른 정렬 파티션 기능을 사용합니다.더 빠른 것이 있는지 알고 싶습니다. 저는 두 개의 더미를 사용하여 20% 더 빠른 것을 "발명"했지만 해시를 사용하여 훨씬 더 빠른 것을 기대했습니다.이를 구현하기 전에 전격적으로 신속한 솔루션이 ..

sourcecode 2023.10.10
반응형