일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- programming_book
- comic agile
- psychology
- Java
- Programming
- hbase
- history
- UK
- Book review
- Book
- France
- RFID
- erlang
- Spain
- ubuntu
- management
- agile
- django
- Linux
- web
- Software Engineering
- hadoop
- Python
- Italy
- program
- Kuala Lumpur
- leadership
- MySQL
- Malaysia
- QT
- Today
- Total
목록Programming/C++ (10)
C++은 복잡해서 좋아하지 않는 언어지만, 최적화라는 영역은 프로그래밍 언어에 관계없이 적용되는 영역이 있어서 배울 점이 많을 거라 생각했고, 역자가 나름 유명한 개발자라 읽게 되었다. 책의 박스 부분에 나오는 저자의 경험을 보면 저자가 하드웨어 관련 경력이 있음을 알 수 있고 그 때문에 최적화에 더 관심을 갖게 되었을 거란 추측을 할 수 있다. 하드웨어 관련 업종은 일반적으로 제조업이기 때문에 비용을 절감하는 제품을 만들기 위해 성능 최적화가 매우 중요하기 때문이다. 1장 책 전체의 개괄로 최적화가 왜 필요한지, 기본적인 최적화 방법이 무엇인지, 각 장마다 뭘 설명할지 이야기한다. 2장 하드웨어와 관련된 부분이라 프로그래밍은 나오지 않지만 최적화를 하기 위해 꼭 알아둬야 할 부분이다. 1장에 나와있고 ..
출처: http://yesarang.tistory.com/70 //Runnable.h #ifndef_RUNNABLE_H #define_RUNNABLE_H class Runnable{ public: virtual void Run() = 0; }; #endif //Thread.h #ifndef_THREAD_H #define_THREAD_H #include "Runnable.h" class Thread:public Runnable{ public: Thread(); Thread(Runnable* pRunnable); void Start(); void Wait(); virtual void Run(); private: pthread_t_thread; Runnable*_runnable; static void* Mai..
출처: http://yesarang.tistory.com/69 2011/05/24 - [Programming/C++] - C에서 C++ 코드 호출 //callable.h #ifndef_CALLABLE_H #define_CALLABLE_H #ifdef__cpluscplus extern "C"{ #endif void* UsefulCppClassWrappingFunction(void* pInst); #ifdef__cplusplus } #endif #endif //callable.cpp #include #include "c2cpp.h" using namespacestd; extern "C" { void* UsefulCppClassWrappingFunction(void* pInst) { cout
출처: http://yesarang.tistory.com/69 //thread.c #include #include #include //for sleep() #include //for free() void* start_routine(void* data) { inti=0; printf("starts to run\n"); while ( ++i < 20 ){ printf("%d\n", i); sleep(1); } if ( data != NULL ) free(data); returnNULL; } int main(void) { pthread_tthrd; intnr=0; void*data; //created thread executes start_routine nr=pthread_create(&thrd, NULL, ..
2011/05/24 - [Programming/C++] - include guard 2011/05/24 - [Programming/C++] - include guard 출처: http://yesarang.tistory.com/67 include guards: 이미 읽은 헤더 파일도 다시 읽음 #pragma once: 각 파일별로 프리프로세서가 include한 상태를 기억하므로 한 번 읽은 헤더 파일은 읽지 않음. 즉 컴파일 속도 유리 include guards: 각 헤더 파일에 대응하는 매크로 이름이 서로 충돌할 가능성이 있으므로 나름의 include guards 명명 규칙이 필요 #pragma once: 프리프로세서에서 #pragma once 처리에 버그가 있거나, 파일 시스템 상에서 파일의 동일성을 ..
2011/05/24 - [Programming/C++] - C/C++ mixed programming 2011/05/24 - [Programming/C++] - C/C++ mixed programming 출처: http://yesarang.tistory.com/66 이미 존재하는 C library를 C++에서 사용하는 경우 //max.h int max(int a, int b); //cppmain.cpp #include extern "C" { #include "max.h" } using namespace std; int main(void) { intim=max(100, 30); cout
2011/05/24 - [Programming/C++] - C/C++ mixed programming not to use name mangling C library 작성시 나중에 C++에서 활용될 가능성을 미리 염두해 두고, 헤더 파일 처음과 마지막에 extern "C" {}가 조건부 컴파일되게 한다 //externc.cpp #include using namespace std; extern "C" int max(int a, int b) { if ( a > b )returna; elsereturnb; } int main(void) { intim=max(100, 30); cout
출처: http://yesarang.tistory.com/65 naming mangling //mixed.cpp #include using namespace std; double max(double a, double b) { cout
2011/05/24 - [Programming/C++] - include guard //hdr1.h #ifndefHDR1_H #defineHDR1_H class DummyBase{ private: int_i; public: DummyBase(int i): _i(i){} int Get(){return_i;} void Set(int i){_i=i;} }; #endif //hdr2.h #ifndefHDR2_H #defineHDR2_H #include "hdr1.h" class Dummy: DummyBase{ public: Dummy(int i): DummyBase(i){} int operator() () {returnGet();} int operator() (int multi){returnGet() * mul..
출처: http://yesarang.tistory.com/64 //hdr1.h class DummyBase{ private: int_i; public: DummyBase(int i): _i(i){} int Get(){return_i;} void Set(int i){_i=i;} }; //hdr2.h #include "hdr1.h" class Dummy: DummyBase{ public: Dummy(int i): DummyBase(i){} int operator() () {returnGet();} int operator() (int multi){returnGet() * multi;} }; //tips1.cpp #include "hdr1.h" #include "hdr2.h" int main() { DummyB..