거의 모든 함수를 static 선언하시는 이유는 무엇인가요?
2323
작성한 질문수 1
안녕하세요? 수강 중인 학생입니다. 다름이 아니라, 몇 가지 질문이 있어서 질문을 드립니다.
1. 거의 모든 함수를 static으로 쓰시는 이유는 무엇인가요?
2. static inline void func (void..) 과 같이 static inline 함수를 사용해도 되나요?
답변 1
1
안녕하세요. 질문자님
사실, 강의 내의 소스코드는 소스코드 한 파일에 실행파일 하나가 나오는 구조 입니다. 따라서 static 함수나 변수를 사용할 필요는 없습니다. 다만, 여러 소스 파일이 하나의 실행 파일을 만드는 경우에는 함수나 변수에 대해 static으로 선언할 필요가 있는 경우가 있죠. 그래서 제가 강의 내에서 static으로 선언하는 함수/변수는 꼭 그렇게 할 필요는 없으나 코딩 습관에 의한 것 입니다.
당연히 static inline 함수를 사용하셔도 됩니다. 다만 static inline 함수가 일반 함수와 어떻게 다른지 반드시 알고 사용하시기 바랍니다. static inline 함수는 함수가 symbol로 만들어지지 않고 함수를 호출한 자리에 해당 함수의 코드가 그대로 삽입되는 구조 입니다. 따라서 static inline으로 선언한 함수의 크기가 크다면, 비효율적인 구조가 될 수 있습니다.
답변이 되셨을까요? 또 다른 질문 있으시면 질문 올려주세요~ 그럼 열공하세요~~
fork() 후 address
0
40
2
bind(): Address already in use
0
57
2
POSIX named semaphore 자원이 제대로 해지되지 못한 상태로 프로세스가 종료됐을 때 해당 semaphore 재사용 방법
0
215
2
강의 순서
0
262
1
강의자료 질문
0
243
1
수업 관련 질문
0
354
3
안녕하세요! 메세지 큐 방식에 대해 질문있습니다.
0
268
1
리눅스는 디버깅이 없나요?
1
722
1
fcntl 에서 Read/Write 기능
1
354
1
시스템 프로그래밍 향후 공부
1
506
1
Shared Memory와 동기화 관련
1
1180
1
SHM_REMAP
1
317
2
recvfrom 질문
1
715
6
컴파일 질문입니다
1
675
1
partial send/recv에 관하여
1
670
1
스레드끼리의 통신에도 적용가능한가요?
1
374
1
File Lock API - 정리 table에서 multi-thread 사용가능시....
1
412
1
WSL Ubuntu에서 메시지 큐
1
464
1
shared memory(14강) live programming file mapping 에 관한 질문입니다.
1
202
1
에러 - bind(): Address already in use
1
1136
1
POSIX MQ의 설정 문의
1
601
2
accept 함수에 대한 문의
1
291
1
datagram socket 구현시 recvfrom에서 블록킹됩니다.
1
1503
1
counting semaphore에 대해서 질문이 있습니다
0
304
3





