본문 바로가기

Programming30

[펌] C와 C++ 함께 쓰기 왜 C++ 와 C 가 함께 쓰기가 어려울까요 ? C++야 C에서 나왔으니까 당연히 두 언어는 함께 섞어 써도 아무런 문제가 없어야 되는거 아냐 ? 라고 생각하실지도 모르겠습니다. 그렇지만 C++와 C 를 섞어 쓰는 게 생각만큼 그리 쉽진 않습니다. 개선된 C로서 C++ 특징 중 하나가 함수 재정의(function override) 가 가능하다는 것이고, 이것을 처리하기 위해서는 함수 심볼명을 코드에 나온 그대로 생성하는 게 아니라 컴파일러가 조정할 필요가 있게 됩니다. 이렇게 컴파일러가 함수 심볼명을 재정의하는 것을 name mangling 이라고 하는데요, 이것 때문에 C와 C++를 섞어 쓰는게 쉽지 않습니다. 어떻게 name mangling 이루어 지는지 아래 코드를 통해 눈으로 확인해 보겠습니다. .. 2009. 4. 10.
점심시간의 뻘짓 #include #include void routine(int number); void display_num(int number); void display_unit(int unit); char text[1000] ={ 0, }; // 여기에 최종결과를 저장함 int main() { routine(125000); printf("%s 원", text); return 0; } void routine(int number) { int unit = 10000; int result, temp; while (unit > 0 && number > 0) { result = number / unit; temp = number % unit; if (result == 0) { unit /= 10; continue; } else.. 2008. 10. 15.
종종 헷갈리는 포인터질 #include int test1(int* arg) { if(arg) return *arg; else return 0; } typedef int(*ptr)(int* arg); int main() { ptr p = test1; int a = 5; printf("%d\n",p(&a)); return 0; } 종종 헷갈리는 포인터질 -_-; typedef가 들어가니 더 헷갈린다 훗~ 2008. 10. 10.
MicroC/OS-II 실습자료 후 -_-; 실습보드 Spec CPU : Intel 80c196kc (20MHz) ROM : Atmel 20c256 (32KB) RAM : Atmel AT29c256 (32KB) Serial Port : RS-232 Interface 통신속도 : 57600bps Homework Source Files 2008. 9. 9.