Q&A (GCC, GNU, 함수, 주석, 식별자, 레이아웃..)
·
📚 STUDY/🔥 C
📌 GCC의 약자는 뭔가요?- 원래는 GNU C Compiler의 약자, 현재는 GNU Compiler Collection의 약자임.- 바뀐 이유 : 현재 GCC는 C 뿐만 아니라 Ada, C, C++, Fortran, Java와 Objective-C와 같은 다양한 언어를 컴파일하기 때문임.  📌 GNU는 뭔가요? *거뉴- GNU's Not Unix의 약자임.- GNU는 리처드 M. 스톨맨이 세운 Free Software Foundation의 프로젝트로, 사용권이 있어 사용하려면 돈을 내야했던 UNIX 소프트웨어에 일종의 저항을 하기 위해 만들었음. (Free Software Foundation은 공식 홈페이지에 따르면 사용자들은 모두 무료로 소프트웨어를 실행하고, 복사하고, 배포하고, 공부하고, 바..
[2-8] C 프로그램의 레이아웃
·
📚 STUDY/🔥 C
- C 프로그램을 일종의 토큰(의미를 구성하는 최소 단위)의 연속이라고 이해할 수 있음. printf  (  "Height: %d\n"  ,    height  )  ;  ①    ②          ③          ④     ⑤    ⑥⑦  - ①번과 ⑤번 토큰은 식별자들이고 ③번 토큰은 스트링 리터럴이며, 나머지 토큰들은 전부 구두점들임. celsius.c 프로그램에선 int와 main 사이, float와 fahrenheit 사이 등을 제외하고는 존재하는 대부분의 스페이스 제거 가능./* Converts a Fahrenheit temperature to Celsius */#include#define FREEZING_PT (32.0f)#define SCALE_FACTOR (5.0f / 9.0f)in..
[2-7] 식별자
·
📚 STUDY/🔥 C
- 프로그램을 작성하면서 변수, 함수, 매크로 등에 정해주는 이름- C에서 식별자를 정의할 때 문자, 숫자, _ 사용할 수 있음. ❌숫자로 시작❌- 대・소문자 구별함. 🔥 예시식별자로 가능한 것 : times10 / get_next_char / _done]식별자로 불가능한 것 : 10times (숫자로 시작) / get-next-char (언더바가 아닌, 뺄셈 기호) 📌 키워드- [C99] C 컴파일러에서 아래의 표에 명시된 일부 키워드들을 특별히 인식해, 이들을 식별자로 사용❌ [!!!] 식별자엔 위에서 다룬 것 외의 또다른 제한이 있기도 하다. 몇몇 컴파일러들은 asm과 같은 특정 식별자들 추가적인 키워드로 인식한다. 당연히 표준 라이브러리에 포함된 식별자 또한 제한된다. 이러한 이름을 실수를 해..
[2-6] 상수 이름 정의하기
·
📚 STUDY/🔥 C
프로그램이 상수를 포함하고 있다면, 상수에 이름을 지어주는 것이 좋음.✅ C 언어의 기능 중 하나인 매크로 정의를 사용해 상수에 이름을 붙여줄 수 있음. #define INCHES_PER_POUND (166)#define은 #include와 같은 전처리 지시자이기 때문에, 마지막에 세미콜론이 들어가지 않음.프로그램이 컴파일 될 때, 전처리자는 각 매크로를 지정된 값으로 대체함. // 1번weight = (volume + INCHES_PER_POUND - 1) / INCHES_PER_POUND;// 2번weight = (volume + 166 - 1) / 166;1번, 2번 구문은 동일한 구문임. 매크로 값은 표현식이 될 수 있음.#define RECIPROCAL_OF_PI (1.0f / 3.14159f)..
[2-5] 입력값 읽기
·
📚 STUDY/🔥 C
입력값을 받기 위해선 C 라이브러리에 있는 printf의 반대 의미인 scanf 함수를 사용해야 함.(tmi 둘 뒤에 있는 f는 형식화 formatted의 약자임.)scanf, printf 각각 데이터를 입력받거나 출력할 때 형식 문자열이 필요함.printf가 데이터를 출력할 때 어떻게 출력해야 하는지 알려줘야하듯, scanf 또한 입력받는 데이터 형식을 정해줘야 함. ① int형 변수를 입력받고 싶을 때scanf("%d", &i); /* 정수를 받아 i에 저장한다. */scanf("%d", &i); /* reads an integer; stores into i */scanf가 정수값을 받기 위해서 문자열 %d가 필요함.여기서 받은 값은 int형 변수인 i에 저장됨. ② float형 변수를 입력받고 싶을..