[C] 알고 있으면 좋은 C 개발 지식

Date:     Updated:

카테고리:

태그:

이 글은 C를 공부하면서 얻은 지식을 정리한 글입니다

  • #include 의 역할은 단순 해당 파일의 내용을 복사붙여넣기하는 것이다
  • 함수 선언에서 매개변수에 void를 생략하면 매개변수를 받는다는 의미
    • 단, 아직 매개변수의 갯수와 자료형을 모를 뿐
  • 함수
    • 모든 전역(global) 함수
    • 기본적으로 어디에서나 호출 가능
  • 변수
    • 함수 밖에 선언 되어있으면, 전역변수
    • 함수 안에 선억 되어있으면, 지역(lcoal) 변수
  • 변수의 선언은 반드시 블럭의 시작에서만 해야함
    int main(void)
    {
        int num1 = 10;
        int num2 = 1234;
          
        printf("num1 = %d, num2 = %d", num1, num2);
    
        int result = add(num1, num2);   /* 컴파일 오류 */
    
        printf("%d + %d = %d", num1, num2, result);
    
        return 0;
    }
    
  • 함수 오버로딩이 안된다
  • C89에서 함수 정의가 등장하기 전에 그 함수를 호출하면 컴파일러가 다음과 같이 가정한다
    • 반환형은 int
    • 그 매개변수는 아무거나 올 수 있음
    • 따라서, 나중에 컴파일러가 int가 아닌 다른 것을 반환하는 함수를 찾으면 컴파일 오류를 뱉음
    • C99 표준부터는 int 가정을 하지 않음
  • 표준에 따르면, 함수 매개변수의 평가 순서는 명시되어 있지 않음
    • 한 함수의 매개변수들이 동일한 변수를 수정할 경우, 결과가 정의되지 않음(undefined behavior)
  • 한 표현식에서 같은 변수를 여러 번 바꾸지 말 것
  • short circuit은 만약 OR 연산일때 왼쪽 값이 true로 평가되면 뒤쪽 값은 하지 않는다
    • 만약 AND 연산일때 왼쪽 값이 false이면 뒤쪽 값은 계산 하지 않는다
  • 기본적으로 모든 변수에는 const를 붙이자
    • 정말 값 변경이 필요한 변수에만 const를 생략하자
  • 만약 NULL값을 반환하거나 매개변수로 들어오면 이름에 표시를 하자


참조

포큐아카데미 C 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

C 카테고리 내 다른 글 보러가기

댓글 남기기