몽상실현개발주의

[따배씨] 12.10 변수의 저장 공간 분류 요약 정리 ~ 12.11 함수의 저장 공간 분류 본문

Language/C

[따배씨] 12.10 변수의 저장 공간 분류 요약 정리 ~ 12.11 함수의 저장 공간 분류

migrationArc 2021. 6. 14. 21:44

[따배씨] 12.10 변수의 저장 공간 분류 요약 정리 ~ 12.11 함수의 저장 공간 분류

따배씨 - 따라하며 배우는 C언어

12강 Storage Classes, Linkage and Memory Management

12.10 변수의 저장 공간 분류 요약 정리

- skip

 

 

12.11 함수의 저장 공간 분류

// main.c
#include <stdio.h>

/*
    Storage Classes and Functions
    - Functions external (by defualt) or static
    - A function declaration is assumed to be extern
*/

int g_int = 123;    // defining declaration

void fun(void);         // extern void fun(void);
void fun_second(void);  // extern void fun_second(void);

int main(){
    fun();
  	// g_int is fun() 124 0x100008010
    fun_second();
  	// g_int in fun_second() 125 0x100008010
    
    return 0;
}

void fun(){
    extern int g_int;   // optional
    
    g_int += 1;
    printf("g_int is fun() %d %p\n", g_int, &g_int); 
}

// second.c
#include <stdio.h>

extern int g_int;

void fun_second(void){
    g_int += 1;
    printf("g_int in fun_second() %d %p\n", g_int, &g_int);
}

 

 

 

#include <stdio.h>

static void tool(void){
		// do something!  
}
void fun_second(void){
    tool();
}
  • 함수에도 static 선언 가능
    • 외부 함수에서 모듈화된 함수를 사용하지 못하게 막는 용도로 사용
    • 함수의 body가 아닌 prototype 에서만 static 선언을 하여도 static function 으로 선언 됨

 

 


이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.

http://blog.naver.com/atelierjpro

 

실리콘 밸리의 프로그래머 : 네이버 블로그

안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.

blog.naver.com

http://www.inflearn.com/course/following-c

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com

 

 

Comments