반응형

C 100

C의 단일 문자 출력

C의 단일 문자 출력 C 프로그램에서 단일 문자를 인쇄할 때 형식 문자열에 "%1s"을(를) 사용해야 합니까?"%c" 같은 것을 사용할 수 있습니까?네.%c는 단일 문자를 인쇄합니다. printf("%c", 'h'); 또한.putchar/putc잘 될 거예요."man putchar"에서: #include int fputc(int c, FILE *stream); int putc(int c, FILE *stream); int putchar(int c); * fputc() writes the character c, cast to an unsigned char, to stream. * putc() is equivalent to fputc() except that it may be implemented as a ..

source 2022.09.30

부호 없는 정수 곱셈 오버플로를 감지하려면 어떻게 해야 합니까?

부호 없는 정수 곱셈 오버플로를 감지하려면 어떻게 해야 합니까? a = c의 모든b 솔루션을 찾기 위해 C++로 프로그램을 작성하고 있었습니다.여기서 a, b, c는 모두 0-9의 숫자를 정확히 한 번 사용합니다.이 프로그램은 a와 b의 값을 루프하여 a, b 및b a에서 매번 디짓 카운트 루틴을 실행하여 디짓 조건이 충족되었는지 확인합니다. 단, 가 정수 제한을 오버플로하면b 스플리어스 솔루션이 생성될 수 있습니다.결국 다음과 같은 코드를 사용하여 확인하게 되었습니다. unsigned long b, c, c_test; ... c_test=c*b; // Possible overflow if (c_test/b != c) {/* There has been an overflow*/} else c=c_test;..

source 2022.09.17

정수를 2로 나눌 때 어떤 옵션을 사용하는 것이 더 좋을까요?

정수를 2로 나눌 때 어떤 옵션을 사용하는 것이 더 좋을까요? 다음 중 정수를 2로 나누는 가장 좋은 방법은 무엇이고 그 이유는 무엇입니까? 기술 1: x = x >> 1; 기술 2: x = x / 2; 여기서x는 정수입니다.실행하려는 작업에 가장 적합한 작업을 사용하십시오. 숫자를 일련의 비트로 취급하는 경우는, 비트 시프트를 사용합니다. 수치로 취급하는 경우는, 나눗셈을 사용합니다. 이 두 가지가 완전히 동일하지는 않다는 점에 유의하십시오.음의 정수에 대해 서로 다른 결과를 얻을 수 있습니다.예를 들어 다음과 같습니다. -5 / 2 = -2 -5 >> 1 = -3 (이상)첫 번째는 나누는 것처럼 보이나요?아니요. 분할하려면x / 2컴파일러는 가능하면 비트 시프트를 사용하도록 최적화할 수 있습니다(강도..

source 2022.09.16

size of(my_arr)[0]이 컴파일되고 size of(my_arr[0])이 같은 이유는 무엇입니까?

size of(my_arr)[0]이 컴파일되고 size of(my_arr[0])이 같은 이유는 무엇입니까? 이 코드가 컴파일되는 이유는 무엇입니까? _Static uint32_t my_arr[2]; _Static_assert(sizeof(my_arr) == 8, ""); _Static_assert(sizeof(my_arr[0]) == 4, ""); _Static_assert(sizeof(my_arr)[0] == 4, ""); 처음 두 개의 단언은 분명히 맞지만, 저는 마지막 줄이 실패할 것이라고 예상했을 것입니다. 제 이해로는 다음과 같습니다.sizeof()는 배열로 취급할 수 없는 정수 리터럴로 평가해야 합니다.즉, 다음 행이 실패했을 때와 같은 방법으로 실패합니다. _Static_assert(4[0]..

source 2022.09.12

Android AudioRecord가 다른 스트림을 MIC 오디오 소스로 강제 전송

Android AudioRecord가 다른 스트림을 MIC 오디오 소스로 강제 전송 업데이트 3: 저는 다른 개발자와 파트너 관계를 맺고 있으며, 큰 금액으로 이 작업을 수행할 수 있는 사람을 찾은 것 같습니다.그들은 우리에게 테스트 apk를 보냈고 그것은 효과가 있는 것 같습니다.소스를 구입하겠습니다.나는 우리가 사기를 당하지 않기를 바란다.알게 되면 업데이트하겠습니다. 업데이트 2: 아직 진행 중입니다.좀 더 고통스러워진 날들이 지나고 나니, 지금은 별 볼일 없는 것 같지만, AudioFlinger(링크 참조)를 네이티브 측에서 사용하여 AudioFlinger를 호출하고 있습니다:setParameters Audio Flinger를 호출하기 위해 간단한 JNI를 쓰는 방법을 찾고 있습니다: setPar..

source 2022.09.11

포인터로 가리키는 int의 증분값

포인터로 가리키는 int의 증분값 나는 가지고 있다.int포인터(즉,int *count를 사용하여 가리키는 정수를 증가시킵니다.++교환입니다.전화하려고 했는데 *count++; 그러나 빌드 경고가 "expression result unused"로 표시됩니다.할 수 있다: 콜 *count += 1; 단, 사용방법을 알고 싶습니다.++오퍼레이터도 마찬가지입니다.좋은 생각 있어요?++는 *와 동일한 우선순위를 가지며 관련성은 오른쪽에서 왼쪽으로입니다.여기 보세요.++가 포인터와 관련지어지더라도 스테이트먼트의 평가 후에 인크리먼트가 적용되기 때문에 더욱 복잡해집니다. 발생하는 순서는 다음과 같습니다. 증가 후, 증가 후 포인터 주소 값을 임시로 기억하십시오. 증가하지 않은 포인터 주소 참조 해제 증분된 포인터 ..

source 2022.09.06

C/C++에서 포인터 변수를 올바르게 선언하는 방법

C/C++에서 포인터 변수를 올바르게 선언하는 방법 현재 이 질문은 Q&A 형식에 적합하지 않습니다.우리는 답변이 사실, 참고 자료 또는 전문지식에 의해 뒷받침되기를 기대하지만, 이 질문은 토론, 논쟁, 여론 조사 또는 연장된 토론을 요구할 것이다.이 질문이 개선되고 다시 열릴 수 있다고 생각되면헬프센터를 방문하여 안내를 받으십시오. 닫힘10년 전에요. 포인터 변수를 선언할 때 다음과 같은 표기법을 사용하는 사람도 있습니다. (a) char* p; 대신 (b) char *p; 나는 (b)를 사용한다.표기법 (a)의 이면에 있는 이성은 무엇입니까?문자 포인터는 문자 포인터 자체가 아니기 때문에 표기법(b)이 더 이해가 됩니다.대신 유형은 character이고 변수는 문자에 대한 포인터일 수 있습니다. ch..

source 2022.09.06

Linux에서 C에서 현재 시간을 밀리초 단위로 가져오려면 어떻게 해야 합니까?

Linux에서 C에서 현재 시간을 밀리초 단위로 가져오려면 어떻게 해야 합니까? Linux에서 현재 시간을 밀리초 단위로 가져오려면 어떻게 해야 합니까?이것은 POSIX 기능을 사용하여 달성할 수 있습니다. 현재 버전의 POSIX에서는gettimeofday사용되지 않는 마크가 붙어있습니다.이는 향후 버전의 사양에서 삭제될 수 있음을 의미합니다.어플리케이션 라이터는 다음과 같이 사용하는 것을 추천합니다.clock_gettime대신 기능하다gettimeofday. 다음은 사용 방법의 예입니다.clock_gettime: #define _POSIX_C_SOURCE 200809L #include #include #include #include void print_current_time_with_ms (void) ..

source 2022.09.03

C의 문자열 변수에 명명된 함수를 호출합니다.

C의 문자열 변수에 명명된 함수를 호출합니다. 변수를 사용하여 함수를 호출하고 싶다.그게 C에서 가능한가요? 사실 제가 하고 싶은 것은 사용자로부터 함수명을 얻어 변수에 저장하는 것입니다.이제 이름이 저장된 함수를 호출합니다.C에서 어떻게 할 수 있는지 말해 줄 사람? 나는 2인용 AI 게임 엔진을 개발하고 싶다.게임의 승리 논리를 구현하는 주요 기능이 없는 프로그램 2개가 게임 엔진에 공급된다.프로그램 이름은 게임에서 이기는 논리를 구현하는 프로그램의 주요 기능과 동일하다는 것을 명확히 해 두겠습니다. 그래서 사용자가 1번과 2번 플레이어의 이름을 입력하면 2개의 다른 변수에 저장할 수 있습니다.이제 주요 함수명은 프로그램 이름과 같기 때문에 프로그램 이름을 포함하는 변수를 사용하여 함수를 호출하려고 ..

source 2022.09.03

'\0'은 false, '\0'은 true로 평가됩니다.

'\0'은 false, '\0'은 true로 평가됩니다. K&R 섹션 5.5에서 설명한 프로그램에서 영감을 얻어: void strcpy(char *s, char *t) { while(*s++ = *t++); } C 프로그램 if ('\0') { printf("\'\\0\' -> true \n"); } else { printf("\'\\0\' -> false\n"); } if ("\0") { printf("\"\\0\" -> true \n"); } else { printf("\"\\0\" -> false\n"); } 인쇄하다 '\0' -> false "\0" -> true ?는 왜?'\0' ★★★★★★★★★★★★★★★★★」"\0"에르르 c c c c c c c? clang 버전 3.8.0 이 C - "C"..

source 2022.09.01
반응형