반응형

C 100

배열 내의 요소 수를 확인하려면 어떻게 해야 합니까?

배열 내의 요소 수를 확인하려면 어떻게 해야 합니까? 는 i i나 an an an i i i i i i i 。int배열과 그 안에 있는 요소의 수를 찾아야 합니다. 관계가 있다는 걸 알아요.sizeof어떻게 사용하는지 잘 모르겠어요. 내에 는, 「」를 사용할 수 .sizeof바이트 단위로 크기를 결정하고 나눗셈을 사용하여 요소의 수를 계산합니다. #define NUM_OF_ELEMS 10 int arr[NUM_OF_ELEMS]; size_t NumberOfElements = sizeof(arr)/sizeof(arr[0]); 배열을 사용하여 할 수 .sizeof. 할 수 사이즈 정보를 저장/전달해야 사용할 수 있습니다. void DoSomethingWithArray(int* arr, int NumOfEle..

source 2022.08.12

각 OS에서 C/C++를 재컴파일해야 하는 이유는 무엇입니까?

각 OS에서 C/C++를 재컴파일해야 하는 이유는 무엇입니까? 이 질문에는 이미 답변이 있습니다. "실행 가능 파일" 운영 체제가 종속되는 이유는 무엇입니까? (6개의 답변) 닫힘1년 전. 이것은 다른 어떤 것보다도 이론적인 질문이다.저는 낮은 수준의 프로그래밍에 관심이 많은 Comp sci 전공자입니다.나는 비밀리에 일이 어떻게 돌아가는지 알아보는 것을 좋아한다.저의 전문은 컴파일러 디자인입니다. 어쨌든, 첫 컴파일러 작업을 하고 있을 때, 뭔가 혼란스러운 일이 일어나고 있습니다. C/C++로 프로그램을 작성할 때, 전통적으로 사람들이 알고 있는 것은 C/C++ 코드가 마법처럼 그 기계의 네이티브 코드로 변환된다는 것입니다. 하지만 뭔가 앞뒤가 맞지 않아요.x86 아키텍처를 대상으로 C/C++ 프로그램..

source 2022.08.11

헤더 파일을 C/C++에 여러 번 포함

헤더 파일을 C/C++에 여러 번 포함 이 질문에는 이미 답변이 있습니다. 경비원을 포함시키고 싶지 않은 상황이 있나요? (6개의 답변) 닫힘6년 전에요. 헤더 파일을 C 또는 C++에 여러 번 포함시키는 것이 도움이 됩니까? 이 메커니즘이 전혀 사용되지 않는다면 컴파일러는 왜 파일을 두 번 포함시키는 것을 걱정합니까? 만약 그것이 정말 쓸모없다면 새로운 컴파일러가 모든 헤더를 한 번만 포함시키는 것이 더 편리하지 않을까요? 편집: 가드와 프래그마를 포함한 표준적인 방법이 있는 것은 알고 있습니다만, 그마저도 명기할 필요가 있는 이유는 무엇입니까?파일을 한 번만 포함하는 것이 컴파일러의 기본 동작이어야 하지 않나요?네, 프리프로세서로 코드를 생성하거나 Boost와 같은 트릭을 할 때 유용합니다.PP는 그..

source 2022.08.11

고속 메모리 복사 방법(ARGB에서 BGR로)

고속 메모리 복사 방법(ARGB에서 BGR로) 개요 다른 형식으로 변환해야 하는 이미지 버퍼가 있습니다.원본 이미지 버퍼는 채널당 8비트씩 4개 채널, Alpha, Red, Green 및 Blue입니다.수신처 버퍼는 채널당8비트, 블루, 그린, 레드 3채널입니다. 즉, 무차별 포스 방식은 다음과 같습니다. // Assume a 32 x 32 pixel image #define IMAGESIZE (32*32) typedef struct{ UInt8 Alpha; UInt8 Red; UInt8 Green; UInt8 Blue; } ARGB; typedef struct{ UInt8 Blue; UInt8 Green; UInt8 Red; } BGR; ARGB orig[IMAGESIZE]; BGR dest[IMAGE..

source 2022.08.11

왜 조립식으로 프로그램을 짜나요?

왜 조립식으로 프로그램을 짜나요? 닫았습니다. 이 질문은의견 기반의현재 답변을 받고 있지 않습니다. 이 질문을 개선하시겠습니까?이 게시물을 편집하여 사실과 인용문으로 답변할 수 있도록 질문을 업데이트하십시오. 3년 전에 문을 닫았어요 이 질문을 개선하다 저 밖의 모든 하급 해커들에게 질문이 있어요나는 블로그에서 이 문장을 우연히 발견했다.출처는 별로 중요하지 않다고 생각합니다(정말로 신경 쓴다면 Hack입니다).그것은 일반적인 발언이기 때문입니다. 예를 들어, 많은 현대 3-D 게임들은 고성능 코어 엔진을 C++ 및 어셈블리로 작성했습니다. 어셈블리에 관한 한, 코드는 컴파일러가 추가 명령어를 출력하거나 과도한 바이트를 사용하는 것을 원치 않기 때문에 어셈블리에 기술된 것입니까?아니면 C로 표현할 수 없..

source 2022.08.11

포토샵은 어떻게 두 이미지를 함께 섞나요?

포토샵은 어떻게 두 이미지를 함께 섞나요? 마감되었습니다. 이 질문은 충족되지 않습니다.스택 오버플로우 가이드라인현재 답변을 받고 있지 않습니다. 이 질문을 개선하시겠습니까?스택 오버플로의 토픽이 되도록 질문을 업데이트합니다. 2년 전에 문을 닫았어요 이 질문을 개선하다 Photoshop이 어떻게 두 이미지를 혼합하는지 설명해 주시면 제가 같은 효과를 응용 프로그램에서 재현할 수 있습니다.포토샵은, 화상 A 의 각 화소에 대해서, 화상 B 의 대응하는 화소에 대해서 블렌드 조작을 실시해, 2 개의 화상을 혼합합니다.각 픽셀은 여러 채널로 구성된 색상입니다.RGB 픽셀로 작업한다고 가정하면 각 픽셀의 채널은 빨강, 초록, 파랑입니다.두 픽셀을 혼합하기 위해 각각의 채널을 혼합합니다. Photoshop의 각..

source 2022.08.11

두 어레이 간의 교차점을 새 어레이로 만들려면 어떻게 해야 합니까?

두 어레이 간의 교차점을 새 어레이로 만들려면 어떻게 해야 합니까? 나는 여러 가지 상황에서 이 문제에 여러 번 직면했다.C 또는 Java에 익숙하지만 모든 프로그래밍 언어에 일반적입니다. 2개의 어레이(또는 컬렉션)에 대해 생각해 보겠습니다. char[] A = {'a', 'b', 'c', 'd'}; char[] B = {'c', 'd', 'e', 'f'}; 두 어레이 간의 공통 요소를 새로운 어레이로 가져오려면 어떻게 해야 합니까?는 "A" B"입니다.char[] c = {'c', 'd'}. 대형 어레이의 경우 실행 시간이 (A의 길이와 B의 길이)만큼 늘어나는 다른 어레이의 반복을 피하고 싶습니다. 각 어레이에서 공통 요소를 얻기 위해 단일 경로를 사용할 수 있는 방법이 있습니까?foreach el..

source 2022.07.21

1988년식 C코드에 무슨 문제가 있나요?

1988년식 C코드에 무슨 문제가 있나요? 더 C 프로그래밍 언어(K&R)입니다. UNIX의 입니다.wc: #include #define IN 1; /* inside a word */ #define OUT 0; /* outside a word */ /* count lines, words and characters in input */ main() { int c, nl, nw, nc, state; state = OUT; nl = nw = nc = 0; while ((c = getchar()) != EOF) { ++nc; if (c == '\n') ++nl; if (c == ' ' || c == '\n' || c == '\t') state = OUT; else if (state == OUT) { state ..

source 2022.07.21

C에서 서명되지 않은 변환으로 서명됨 - 항상 안전한가?

C에서 서명되지 않은 변환으로 서명됨 - 항상 안전한가? 다음과 같은 C 코드가 있다고 가정합니다. unsigned int u = 1234; int i = -5678; unsigned int result = u + i; 어떤 있습니까?또, 이 는, 「」, 「」의 모든 에 대해서 합니다.u ★★★★★★★★★★★★★★★★★」i(안전한 것은, 이 예제의 결과가 큰 양의 수치로 넘치더라도, 그것을 int로 되돌려 실제 결과를 얻을 수 있다는 것입니다.단답 의 ★★★★★★★★★★★★★★★★★.i를 추가함으로써 부호 없는 정수로 변환됩니다.UINT_MAX + 1후 부호 되어 큰 result)u ★★★★★★★★★★★★★★★★★」i를 참조해 주세요. 장황한 답변 C99 표준에 따르면: 6.3.1.8 통상적인 산술 변환..

source 2022.07.21

gcc 스텝 수동 실행, 컴파일, 조립, 링크

gcc 스텝 수동 실행, 컴파일, 조립, 링크 간단한 C프로그램이 있다면 int main(void) {return 0;} 컴파일 할 수 있습니다.gcc -o test test.c. gcc는 컴파일, 조립, 링크를 하는 것으로 알고 있습니다.후자의 2단계는 실행함으로써 실현됩니다.as그리고.ld. 다음을 사용하여 어셈블리 코드를 생성할 수 있습니다.gcc -S test.c. 어셈블리 코드를 실행 파일로 변환하려면 단말기에 무엇을 입력하시겠습니까? (그 이유는 조립을 배우기 위해서입니다.)gcc를 사용하는 다른 단계입니다. gcc -E --> Preprocessor, but don't compile gcc -S --> Compile but don't assemble gcc -c --> Preprocess, ..

source 2022.07.21
반응형