상수를 정의하기 위해 #define 을 사용하는 것은 잊으라고 교과서에 나와 있네요.
const 변수로 정의하는게 바람직합니다.
정 저렇게 하고 싶으면 전역변수를 이용하는 수 밖에 없습니다만,
프로그램 구조를 좀 바꾸면 전역변수나 상수를 쓰지 않고 해결할 수 있을 것 같은데요.
이런식으로 사용할 수도 있습니다.
매크로는 그냥 예를 든 것으로..
저런식으로 함수를 매크로로 바꿔서 쓰다보면 만수무강에 지장이 생길수도 있습니다.. ㅎ~
매크로 빼고 locl_alpha 를 alpha 로 바꾸고, 앞에 static 빼면..
굳이 get_alpha() 안 써도, 아무데서나 바로 alpha 로 접근할 수 있겠죠..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
상수를 정의하기
상수를 정의하기 위해 #define 을 사용하는 것은 잊으라고 교과서에 나와 있네요.
const 변수로 정의하는게 바람직합니다.
정 저렇게 하고 싶으면 전역변수를 이용하는 수 밖에 없습니다만,
프로그램 구조를 좀 바꾸면 전역변수나 상수를 쓰지 않고 해결할 수 있을 것 같은데요.
감사합니다.
감사합니다.
그런데 프로그램의 구조를 바꾸고 싶지만
너무 큰 프로그램이라.. 전부 바꾸는게 용의치 않아서요.
char 변수에 알파벳 값을 넣는 것과
#define 을 통해서 알파벳을 넣는 것이
같은 역할을 하나요?
예를 들어서 #define a0 alpha
라고 한 다음 a0를 사용하는 것과,
char a0 = alpha;
를 한 다음에 a0를 사용하는 것이 같은 동작을 하는지 알고 싶습니다.
그렇다면, 현재 헤더파일에 있는 #define으로 정의되어 있는 값들을 모두
const char 로 바꿔주어도 되는 것인지 알고 싶습니다.
감사합니다! ^^
#define 은 타입을
#define 은 타입을 따지지 않는 단순 치환이죠.
변수 a0가 프로그램 전체에서 char 로 쓰이고 있다면 const char 로 바꾸어도 무난합니다.
에고.. 잘 안 되네요..
헤더파일에
#define a "alpha"
라고 되어있던 것을 변경하려고 하는 중인데
어떻게 하면 되지요..?
const로 지정할 수도 없는게 도중에 값을 변경시켜줘야 해서요..
extern을 사용해야 되는데..extern을 사용하면 초기값을 줄 수가 없고.. 허허.. ㅠㅠ
음...
이런식으로 사용할 수도 있습니다.
매크로는 그냥 예를 든 것으로..
저런식으로 함수를 매크로로 바꿔서 쓰다보면 만수무강에 지장이 생길수도 있습니다.. ㅎ~
매크로 빼고 locl_alpha 를 alpha 로 바꾸고, 앞에 static 빼면..
굳이 get_alpha() 안 써도, 아무데서나 바로 alpha 로 접근할 수 있겠죠..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
혹시 이게
혹시 이게 필요하신건지 모르겠습니다..
#define, #undef
댓글 달기