일단 언어는 c++를 기준으로 할게
0~5까지의 수로 난이도를 지정하는 변수 i를 선언한다고 했을 때 1byte로도 차고도 넘치는데
bool은 1바이트만을 차지하긴 하지만, true냐 false냐 만을 구별하잖아?
그럼 2바이트를 차지하는 short가 그나마 가장 메모리를 덜 차지하는 최적화된 변수 선언이 맞음?
char은 문자니까 제외했는데 1바이트에, 어차피 문자가 개입하지 않을거라면 char로 선언하는게 낫나..?
- dc official App
enum이 가장 좋아보이는데
아 이렇게 사용자 지정을 할 수도 있는 거였구나 이렇게 하면 프로그램 에러는 확실히 잡을 수 있겠다 그런데 크기가 4바이트 이던데 이걸 또 직접 변경하거나 하는건 가능해? 무슨 임베디드나 IAR?의 이야기가 나오긴 하던데 개발 환경에 따라 가능 여부가 나눠지는건가? - dc App
자료형의 크기를 따지는 이유가 뭔데? 임베디드가 목적이라서 1바이트가 소중한 상황이면 난 잘 몰루 패스
c++은 최적화가 중요하단 소릴 들어서 1바이트도 아껴 사용해야 하는건가 해서 그런건데 그정도까진 아닌건가..? - dc App
게이는 align이 뭔지 더 공부하는게 좋겠노...
char i[1]
배열?? 혹시 왜 배열로 나타내는건지 알려줄 수 있어? - dc App
메모리 부족한 거 아니면 그냥 int가 나음
내가 보기엔 메모리를 최대한 적게 잡는게 목표라면 char로 선언하는게 최선인거같음
근데 최적화 한다는게 메모리 사용량임 속도임?
걍 int써 int를 못쓸 상황이면 이런 질문은 올리지도않았을듯
램은 사용하지 않아도 낭비다
어차피 나중에 시피유 들어갈 때 다 워드 단위로 바껴서 들어간다~
1. 메모리 적게 쓴다고 무조건 최적(의미가 다양하긴 하지만)은 아님 2. 위에서 말한 char[]은 아마 플래그 말하는거같은데 C나 C++이나 bool[]지원이 미흡하기 때문에 char배열을 씀 3. 지금까지 얘기안나온거로는 비트플래그가 있음 1<<n 해서 1인 비트가 난이도임 4. 근데 나라면 걍 int쓸거고 메모리 줄여보려고 하면 unsigned char쓸듯
어차피 data alignment때문에 니가 최적화한답시고 1byte로 설정해도 알아서 3byte padding뒤에 채워줌
char 배열만들어서 많이 저장할거 아니면 alignment 때문에 char도 int처럼 4바이트 할당받음