[C] 알고 있으면 좋은 C 개발 지식
카테고리: C
태그: Why
이 글은 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값을 반환하거나 매개변수로 들어오면 이름에 표시를 하자
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기