C 61

C의 배열에 여러 값 할당

C의 배열에 여러 값 할당 이것을 축약된 형태로 할 수 있는 방법이 있습니까? GLfloat coordinates[8]; ... coordinates[0] = 1.0f; coordinates[1] = 0.0f; coordinates[2] = 1.0f; coordinates[3] = 1.0f; coordinates[4] = 0.0f; coordinates[5] = 1.0f; coordinates[6] = 0.0f; coordinates[7] = 0.0f; return coordinates; 비슷한 것coordinates = {1.0f, ...};?실제로 값을 할당하려면(초기화가 아닌) 다음과 같이 할 수 있습니다. GLfloat coordinates[8]; static const GLfloat coordi..

programing 2023.07.04

당신은 C 선언을 어떻게 읽습니까?

당신은 C 선언을 어떻게 읽습니까? 저는 몇 가지 방법을 들어보았지만, 어떤 방법도 고수하지 않았습니다.개인적으로 저는 C에서 복잡한 유형을 피하고 구성 요소 유형으로 나누려고 노력합니다. 저는 현재 소위 '3성 프로그래머'의 레거시 코드를 유지해야 하는 상황에 직면해 있으며, ***code[][]의 일부를 읽는 데 어려움을 겪고 있습니다. 복잡한 C 선언을 어떻게 읽습니까? 이 기사에서는 수동으로 C 선언을 읽고 싶거나 필요한 경우 C 선언을 읽을 수 있는 비교적 간단한 7가지 규칙을 설명합니다. http://www.ericgiguere.com/articles/reading-c-declarations.html 식별자를 찾습니다.이것이 당신의 출발점입니다.종이에 "식별자를 다음으로 선언"이라고 적습니다...

programing 2023.06.29

연속 메모리 블록이란 무엇입니까?

연속 메모리 블록이란 무엇입니까? 제목처럼 연속 메모리 블록이란 무엇입니까?이것은 위치 1에서 위치 5까지 이어지는 5바이트의 연속 메모리 블록입니다. 메모리에서 공백 바이트(흰색) 없이 함께 있는 바이트(파란색)를 나타냅니다. 다음은 관심 있는 5바이트의 비연속 집합입니다. 위치 4와 6에 간격 바이트가 있는 세 개의 바이트 그룹(노란색)으로 분할됩니다.위치 1에서 시작하여 위치 1에서 3까지 이어지는 3바이트의 연속 블록이 있습니다.위치 5와 7에는 각각 1바이트의 블록이 두 개 더 있습니다. 위치 0에 있는 사용되지 않는 블록과 위치 7을 초과하는 후속 블록은 위치 1에서 7까지의 관심 바이트 사이에 삽입되므로 일반적으로 무시할 수 있습니다.차지하는 주소에 공백이 없는 주소입니다.여러분은 아마 이것..

programing 2023.06.19

"DNS_BLOCK_ASSERTION"(C 컴파일러 플래그)은 무엇입니까?

"DNS_BLOCK_ASSERTION"(C 컴파일러 플래그)은 무엇입니까? "DNS_BLOCK_ASSERTION"(C 컴파일러 플래그)은 무엇입니까?NS_BLOCK_ASSERTION 매크로("D"가 아님)는 NSssert에서 수행하는 검사를 억제합니다.당신은 그것을 컴파일러에 제공합니다.-DNS_BLOCK_ASSERTIONS("D"에 대한 설명은 주석 참조).언급URL : https://stackoverflow.com/questions/2752574/whats-the-dns-block-assertions-c-compiler-flag

programing 2023.06.14

리눅스에서 직렬 포트 읽기 및 쓰기

리눅스에서 직렬 포트 읽기 및 쓰기 FTDI를 사용하여 USB 포트를 통해 데이터를 송수신하려고 하므로 C/C++을 사용하여 직렬 통신을 처리해야 합니다.저는 리눅스(우분투)에서 일하고 있습니다. 기본적으로 수신 명령을 수신하는 장치에 연결되어 있습니다.저는 그 명령들을 보내고 장치의 응답을 읽어야 합니다.명령과 응답은 모두 ASCII 문자입니다. GtkTerm을 사용하면 모든 것이 정상적으로 작동하지만 C 프로그래밍으로 전환하면 문제가 발생합니다. 내 코드는 다음과 같습니다. #include // standard input / output functions #include #include // string function definitions #include // UNIX standard functio..

programing 2023.06.14

C: 할당되지 않은 포인터가 NULL이 아닌 예측 불가능한 메모리를 가리키는 이유는 무엇입니까?

C: 할당되지 않은 포인터가 NULL이 아닌 예측 불가능한 메모리를 가리키는 이유는 무엇입니까? 오래 전에 나는 학교를 위해 C에서 프로그램을 짜곤 했습니다.제가 C에 대해 정말 싫어했던 것을 기억합니다. 할당되지 않은 포인터는 NULL을 가리키지 않습니다. 저는 선생님들을 포함한 많은 사람들에게 왜 그들이 할당되지 않은 포인터가 NULL을 가리키지 않는 기본 동작을 만드는지 물었습니다. 왜냐하면 그것이 예측할 수 없는 것이 훨씬 더 위험해 보이기 때문입니다. 답은 성능이었지만 저는 그것을 산 적이 없습니다.C가 NULL로 기본 설정했다면 프로그래밍 역사상 많은 버그를 피할 수 있었을 것이라고 생각합니다. 다음은 제가 말하는 것을 지적하기 위한 몇 가지 C 코드입니다. #include void main(..

programing 2023.06.14

입력이 C의 정수 유형인지 확인합니다.

입력이 C의 정수 유형인지 확인합니다. 단점은 제가 장난감이나 그런 다른 기능을 사용할 수 없다는 것입니다(수학적 연산에 의존해야 한다고 꽤 확신합니다). int num; scanf("%d",&num); if(/* num is not integer */) { printf("enter integer"); return; } 시도해 봤습니다. (num*2)/2 == num num%1==0 if(scanf("%d",&num)!=1) 하지만 아무 것도 효과가 없었습니다. 아이디어 있어요?num 항상 합니다. " " "이기 때문입니다. 이는 다음과 같기 때문입니다.int당신의 코드의 진짜 문제는 당신이 확인하지 않는다는 것입니다.scanf반환 가격scanf 성공적으로 읽은 항목 수를 반환하므로 이 경우 유효한 값에..

programing 2023.06.14

간단한 (아마도 가장 간단한) C 컴파일러를 시작하는 것입니까?

간단한 (아마도 가장 간단한) C 컴파일러를 시작하는 것입니까? 우연히 발견한 것은 다음과 같습니다.Turbo Pascal을 사용하여 컴파일러 작성 간단한 C 컴파일러를 만드는 방법을 설명하는 튜토리얼이나 참고 자료가 있는지 궁금합니다.제 말은, 제가 산술 연산을 이해할 수 있게 해준다면 충분하다는 것입니다.저는 켄 톰슨의 이 기사를 읽고 정말 궁금증이 생겼습니다.그 자체를 이해할 수 있는 것을 쓴다는 생각은 신나는 것 같습니다. 왜 구글에 묻지 않고 이런 질문을 던졌을까요?저는 구글을 사용해봤는데 파스칼이 첫 번째 링크였습니다.나머지는 관련이 없어 보였고 거기에 더해...저는 CS 전공자가 아닙니다(그래서 저는 여전히 yacc와 같은 모든 도구들이 무엇을 하는지 배워야 합니다). 저는 이것을 하면서 배..

programing 2023.06.14

형식 지정자 %02x

형식 지정자 %02x 간단한 프로그램이 있습니다. #include int main() { long i = 16843009; printf ("%02x \n" ,i); } 사용 중%02xformat specifier를 사용하여 2char 출력을 얻지만 출력은 다음과 같습니다. 1010101 내가 예상하는 동안:01010101.%02x적어도 두 자리를 인쇄하고, 다음으로 추가하는 것을 의미합니다.0더 적은 양이 있다면요.당신의 경우는 7자리이므로 추가 요금을 받지 않습니다.0맨 앞에 또한.%xint를 위한 것이지만, 당신은 긴 시간을 가지고 있습니다.해라%08lx대신.%x는 16진수 값을 포맷하고 출력하는 형식 지정자입니다.int 또는 long 값을 제공하는 경우 16진수 값으로 변환됩니다. %02x제공된 값..

programing 2023.06.14