반응형

C 15

C/C++ Best Practice(서명/부호 인트 및 함수 호출 포함)

C/C++ Best Practice(서명/부호 인트 및 함수 호출 포함) 저는 C와 C++ 두 개의 다른 언어에 대해 이 질문을 합니다. 코드에서 요구하는 것과 반대의 정수 부호 기대를 가지는 함수를 호출할 때 가장 좋은 방법은 무엇입니까? 예를 들어, uint32 _depth; // uint32 = DWORD int depth; _BitScanForward(&_depth, (uint32)input); // DWORD, DWORD depth = (int)_depth; _BitScanForward에 DWORD(unint32) 매개 변수가 필요합니다.변수가inputint16 타입으로 결과물을 처리해야합니다._depth내 코드의 int32로. 캐스팅에 신경을 써야 합니까?input보이는 대로?아마 컴파일러가 ..

programing 2023.09.13

C의 Const 배열

C의 Const 배열 원래 질문:정의할 경우: const int z[5] = {10, 11, 12, 13, 14}; 다음을 의미합니까? 이것은 정수의 상수 배열입니다. 즉 z가 가리키는 주소는 항상 일정하고 결코 변경할 수 없지만 z의 요소는 변경할 수 있습니다. 오어 z의 각 원소는 상수입니다. 즉, 그 값은 절대로 변할 수 없습니다. 편집: 자세한 정보: 또 다른 변수가 있습니다. const int *y = z; func((int *) y); 여기서 func는 다음과 같이 정의됩니다. void func(int y[]) { int i; for(i = 0; i < 5; i++) { y[i] = i; //y[i] can be set to any integer; used i as example } } fun..

programing 2023.09.13

(x < 0)과 (x == -1) 중 어느 것이 더 빠릅니까?

(x < 0)과 (x == -1) 중 어느 것이 더 빠릅니까? 변수 x값을 .진을한 int.-1, 0, 1, 2, 3( 틱 식 중에서 것은 입니까? CPU 틱(tick)에서 더 빠른 표현은 무엇입니까? 1. (x < 0) 2. (x == -1) 언어: C/C++, 하지만 다른 언어들은 다 똑같을 것 같습니다. 으로 그 이 라고 합니다. 저는 개인적으로 그 대답이(x < 0). 구루들을 위한 더 광범위한: 만약에x-12^30?이것은 전적으로 당신이 컴파일하려는 ISA와 당신의 컴파일러 옵티마이저의 품질에 달려있습니다.섣불리 최적화하지 마십시오. 먼저 프로파일을 작성하여 병목 지점을 찾습니다. 경우에 둘다을 알 수 있습니다., x86 의 하게 을 에서는 을 모두 우가두다가두두na우ne(l,usr'h )cmp..

programing 2023.09.08

목표 C에서 'int' 배열의 길이

목표 C에서 'int' 배열의 길이 함수에 정수 배열을 전달합니다.다음으로 배열을 통과합니다.C와 C++에서 이것은 단순히 다음을 사용함으로써 작동했습니다.arrayname.length배열된 요소의 수를 제공했습니다.목표-C에서 그것을 찾을 수 있는 방법은 무엇입니까? [NSArrayObject length]일을 하는NSArray타이프 하지만 나는 그것을 원합니다.int[]. 심지어는[XYZ count](이미 제안된 답변) 그래서 여기서 다른 방법을 찾고 있습니다.[XYZ count]를 사용하여 배열의 길이를 얻을 수 있습니다.Int들의 배열로 Objective-C에 특정한 것은 없습니다.당신은 마치 C를 사용하는 것과 같은 기술을 사용할 것입니다. sz = (sizeof foo) / (sizeof fo..

programing 2023.09.08

cmake 컴파일러 테스트를 건너뛰거나 "error: 인식할 수 없는 옵션 '-rdynamic'을 피할 수 있습니까?"

cmake 컴파일러 테스트를 건너뛰거나 "error: 인식할 수 없는 옵션 '-rdynamic'을 피할 수 있습니까?" ARM 대상 시스템용 cmake(윈도우)의 컴파일 옵션이지만 실행 시 컴파일러 테스트를 시작합니다. CMake Error at D:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE): The C compiler "D:/Program Files/yagarto/bin/arm-none-eabi-gcc.exe" is not able to compile a simple test program. It fails with the following output: Change Dir: D:/merge..

programing 2023.08.14

쉼표 연산자(c)

쉼표 연산자(c) 이 질문에는 이미 다음과 같은 답이 있습니다. 쉼표 연산자는 무엇을 합니까? (8개 답변) 마감됨5년 전에. #include int main(void) { int a; a = (1, 2), 3; printf("%d", a); return 0; } 출력: 2 출력이 2라는 것을 설명할 수 있는 사람이 있습니까? 출력이 2라는 것을 설명할 수 있는 사람이 있습니까? 왜냐하면 양도사업자의 우선순위(=)이 쉼표 연산자(,). 따라서 다음과 같은 문장이 있습니다. a = (1, 2), 3; 다음과 같습니다. (a = (1, 2)), 3; 그리고 그 표현은(1, 2)로 평가함.2. 출력이 2라는 것을 설명할 수 있는 사람이 있습니까? 성명서에서 a = (1, 2), 3; ,사용됨은 쉼표 연산자입니..

programing 2023.08.09

JNI 대 유고 인민군 경기력

JNI 대 유고 인민군 경기력 우리는 원어민이 있습니다.c/asm GPU(OpenCL)를 위해 GPU를 프로그램입니다.encrypt/decrypt특정 방법으로 데이터를 처리할 수 있습니다. 문제 없이 완벽하게 작동합니다.프로젝트의 일부(웹 및 배포)는 다음과 같이 개발되고 있습니다.JEE기본 애플리케이션/프로그래밍을 호출하면 됩니다. 우리는 그것을 분리된 외부 프로세스라고 부르려고 시도했습니다.Process클래스. 문제는 응용 프로그램(이벤트, 핸들러, 스레드 등)을 제어할 수 없다는 것입니다.우리는 또한 C 코드를 자바 코드로 바꾸려고 했지만, 성능이 떨어졌습니다.네이티브 코드를 프로세스로 실행하는 것 외에는 유고 인민군과 JNI에 대해 생각하고 있지만 몇 가지 질문이 있습니다. 질문: 나은 빠른) 솔..

programing 2023.08.09

C에서의 유니온의 예

C에서의 유니온의 예 여기서 무엇이 요구되고 있는지 말하기가 어렵습니다.이 질문은 애매모호하고, 모호하며, 불완전하고, 지나치게 광범위하거나 수사적이며, 현재의 형태로는 합리적으로 대답할 수 없습니다.이 질문을 다시 열 수 있도록 설명하는 데 도움이 필요한 경우,도움말 센터를 방문합니다. 마감됨10년 전에. 저는 노조의 예를 찾고 있습니다. 노조가 어떻게 돌아가는지 이해하기 위해서가 아니라, 바라건대, 제가 이해하기 위해서입니다. 사람들이 노조를 가지고 어떤 해킹을 하는지 보기 위해서요. 그러니 자유롭게 당신의 유니온 해킹을 공유하세요 (물론 약간의 설명과 함께) :)단순한 가상 시스템의 핵심처럼 "알 수 없는" 유형의 값을 나타내는 것이 고전입니다. typedef enum { INTEGER, STRIN..

programing 2023.08.04

오류: 'uint16_t'이(가) 선언되지 않았습니까?

오류: 'uint16_t'이(가) 선언되지 않았습니까? 내가 코드를 가지고 있습니다. #include #include void print128_num(__m128i var) { uint16_t *val = (uint16_t*) &var; printf("Numerical: %i %i %i %i %i %i %i %i \n", val[0], val[1], val[2], val[3], val[4], val[5], val[6], val[7]); } int main(void) { __m128i a = _mm_set_epi32(4, 3, 2, 1); __m128i b = _mm_set_epi32(7, 6, 5, 4); __m128i c = _mm_add_epi32(a, b); print128_num(c); retur..

programing 2023.08.04

포크를 호출할 때 스레드가 복사됩니까?

포크를 호출할 때 스레드가 복사됩니까? 스레드와 호출로 실행 중인 프로그램이 있는 경우fork()유닉스 기반 시스템에서 스레드가 복사됩니까?현재 프로세스의 가상 메모리가 생성된 새 프로세스에 1:1로 복사되는 것으로 알고 있습니다.스레드는 프로세스의 가상 메모리에 자체 스택이 있다는 것을 알고 있습니다.따라서 적어도 스레드 스택도 복사해야 합니다.하지만 가상 메모리에 상주하지 않아 복사되지 않는 스레드가 더 있는지는 모르겠습니다.없는 경우 두 프로세스가 스레드를 공유합니까, 아니면 독립적인 복사본입니까?아니요. 스레드가 복사되지 않음fork()POSIX 사양은 다음과 같습니다(강조는 나의 것임을 강조함). 포크 - 새 프로세스 생성 프로세스는 단일 스레드로 생성되어야 합니다.멀티스레드 프로세스가 포크()..

programing 2023.08.04
반응형