개발/C
-
[C언어] # include 전처리기 stdio.h 쓰는 이유개발/C 2020. 12. 23. 17:24
C언어를 시작하면 첫문장이 항상 #include 로 시작한다. stdio.h는 "standard" (std로 줄여쓴다) + "input & output" (io로 줄여쓴다)로, 번역하면 "표준입출력"이 들어있는 .h(헤더)이다. " 라는 파일을 이 코드 앞에 붙여 쓰세요 "라는 문장으로 이해하면 된다. 본디 C는 문서 내에서 모든 함수가 정의되어야 하니까, printf같은 것도 그냥은 사용할 수 없고, 따로 선언해주어야 한다. 에는 입출력함수 (printf 등등)가 정의되어 있다. 그래서 나는 printf라는 함수를 따로 정의하지 않고 그냥 printf를 적기만 해도 화면에 "hello, world"를 찍을 수 있는 것이다. 궁금하면 #include 를 빼고 printf를 써 보면 된다. 아마 "prin..
-
[C언어] 비주얼베이직 C 프로젝트 만들기개발/C 2020. 12. 23. 17:24
비주얼베이직으로 C 코딩하기 비주얼베이직에서 [파일]-[새로만들기]-[새 프로젝트] (CTRL+SHIFT+N) 좌측 메뉴 중 [다른언어]를 눌러야한다. 다른언어 >> Visual C++ >> Win32 C가 비주얼베이직 주력언어일 것만 같지만, 사실 꽤나 비주류인 모양이다. "빈 프로젝트"를 체크하는 것이 좋다. 이렇게 프로젝트가 생성된다. [프로젝트]-[새 항목 추가]를 선택 (CTRL+SHIFT+A) C++파일 (cpp) 템플릿을 선택하고 이름 확장자에 파일명.C 를 꼭! 써주어야 C로 생성된다. 비주얼베이직에서 C 코딩하기
-
[C언어] getchar()와 엔터 공백 제거 / fflush(stdin)개발/C 2020. 12. 23. 17:21
getchar()는 키보드로부터 입력받은 문자를 단 한 문자만 처리한다. 그래서 이렇게 "asdf"를 연속으로 입력하면, 첫 getchat()가 "a"를, 다음 getchar()가 "s"를 받아버린다. 그뿐인가. 엔터도 입력으로 받아버려서, "a"입력후 엔터를 치면 다음 getchar()가 이 엔터를 받아버린다. 엔터를 치기 전까지 입력을 다 받으면서, 처리를 이렇게 하다니.. -_- 이를 해결하려면 두 getchar()사이에 fflush(stdin)를 쓴다. 앞에 들어온 입력들을 flush 해 준다. 이제 의도대로(?) getchar()들이 각 입력값에서 맨앞 한문자씩만을 가져오게 되었다ㅋ
-
[C언어] 자료형 묵시적/명시적 변환 (int float double)개발/C 2020. 12. 23. 17:21
int는 4byte, float는 4byte, double은 8byte이다. 1. 형변환은 일시적이기 떄문에 연산 전후의 x, y자체의 형변환이 일어나지는 않았음을 알 수 있다. (메모리크기 그대로) 하지만 연산결과 자체에서는 형변환이 일어난다. (메모리크기 바뀜) 2. double을 int로 바꿀때는, 값이 잘려나간다. 해당 내용은 심각하므로 비주얼스튜디오에서 warning이 나온다. 3. ch=1000이 값이 -24가 나오는 것은, signed char가 char의 기본값인데 앞의 1을 보수 flag로 이해하다보니 값이 음수로 나온 것. 형변환은 위험하다, 큰 것을 작은 데다 욱여넣지 말자!!