일단 첫번째 프로젝트가,


const 를 죄다 넣고 시작하기 프로젝트야.



근데 이럴 경우에 문제가 하나 발생해.



우리 보통


C 스타일을 쓴다고 그러면,


앞부분에서 변수를 쭈루룩 선언해주잖아??


개인적으로 나도 그게 정말 마음에 들어.



무엇이 가장 마음에 드냐하면, 역시나


함수에 처음 들어갔을때


input이 무엇이냐

output이 무엇이냐

내부에서 활용하는 데이터는 무엇이냐.


이런식으로 공간에 대한 정의를 쭈루룩 하고 간다는게 마음에 들어.







근데, "해당 변수는 초기화 이후에 변경하지 않습니다" 라는것을 일러주기 위해서


const를 전부 붙이는 경우를 생각해봤단말야.



일단 러스트와 다르게


C는


const int a;


해놓고


나중에


a = b;


하고선, "이 부분에서 초기화를 진행하였습니다"


가 안되잖아?


const a = 상수;


로 주로 쓴다고 알고있었지.


여기서 상수를 쓰는 이유는 하드웨어적인 이유는 아니야.

static 이랑 다르게

const 는 말그대로 컴파일러 단계에서만 존재하는 에러검출기거든.

막 read_only data 세그먼트에 프로그램 시작전부터 하드코딩하기 위한 그런게 아니란 뜻임 ㅇㅇㅇ.




여하튼, 아 시발 const 이거 병신인가??



이런 생각을 하던 찰나,



이거 설마???


하면서


int b;

const int a = b;


b = 100;


해봤다??


될리가 없지 하고 들갔는데, 씨발 컴파일이 되네??

컴파일이 되는 순간부터 이거 좀 이상해서



int b;

b = 100;

const int a = b;


하니까 진짜로 a가 100으로 선언이 되더라???



씨발 근데 이런식으로 코드 짜도 되냐???



일단 리누스형님은 이렇게 코딩 안하는거같은데


나 이런식으로 코딩했다가 형님한테 꿀밤맞는거아녀??? 너무 독단적인거같은데