프로그래밍
-
CPU에 따른, 프로그램에서의 효율적 스레드의 수프로그래밍 2014. 5. 23. 05:58
하나의 프로그램에서 멀티 스레드를 사용할 때, [(하드웨어 스레드 컨텍스트 수 * 2) + 1]만큼을 사용하면 효율이 좋다고 한다. C++11에서부터 지원하는 std::thread에 hardware_concurrency()라는 멤버 함수가 있는데 이는 하드웨어의 스레드 컨텍스트 수를 반환한다.(만약, hardware_concurrency()를 사용할 수 없는 경우라면 0 을 반환) CPU 하나에, 코어가 4개 달린 CPU를 사용중이라면 결과는 4가 나온다.(하이퍼 스레딩 같은 기술을 지원한다면 결과가 다를 수 있다.) 출저: http://jacking.tistory.com/1061
-
구글 C++ 스타일 가이드 - 이름 짓기프로그래밍/c++ 2014. 5. 2. 23:57
구글 C++ 스타일 가이드 - 이름 짓기(Google C++ Style Guide - Naming) 1. 일반적인 이름 규칙 함수, 변수, 파일 이름은 설명적이어야 하므로 가급적 축약하지 않는다. 타입과 변수는 명사, 함수는 명령 동사로 쓴다. - 이름 짓기 이름은 가급적 설명적이어야한다. 다음은 좋고 나쁜 예이다. //좋은 예 int num_errors; int num_completed_connections; //나쁜 예 int n; int nerr; int num_comp_conn; - 약어 프로젝트 외에서도 잘 알려진 약어가 아니라면 축약하지 사용하지 않는다. // 좋은 예 int num_dns_connections; // dns는 외부에 많이 알려진 약어이다. openDvdPlayer(); // ..
-
C# 표준 네이밍 규칙프로그래밍 2014. 5. 2. 22:16
이 네이밍 규칙은 닷넷 스파이더 팀에서 만든 [C# Coding Standards and Best Programming Practices]를 바탕으로 만들었습니다. 전반적으로 카멜(Camel) 표기법 파스칼(Pascal) 표기법으로 이루어짐. 헝가리안 표기법은 사용하지 않는다.(컴파일러의 발전으로 변수 타입 확인이 쉬워짐. 헝가리안 표기법은 이제 난잡하게 보이는 요인이 될 수 있음) 파스칼(Pascal) 표기법: 단어의 첫글자는 모두 대문자, 나머지는 소문자 (예: GetObject)카멜(Camel) 표기법: 첫 단어는 소문자, 나머지는 첫 문자를 대문자로 하는 표기법 (예: getObject) 일반 함수: 파스칼void GetCurrentTime( ... ) 클래스: 파스칼class Session 멤버..
-
fopen할 때 파일 경로 설정에서 삽질...프로그래밍 2013. 4. 1. 17:41
fp = fopen("C:\\Users\\Esnelsias\\Desktop\\cmd.exe", "rb" ); 파일 경로를 저런식으로 \\를 두 개 넣어줬어야 했는데 fp = fopen("C:\Users\Esnelsias\Desktop\cmd.exe", "rb" ); 이런식으로 했었더니 fp값이 NULL로 잡혀 오류가 있었다. ++ 2019/03/11 R"()" string literal을 씁시다.\\ 해줄 필요 없이 R"(C:\Users\Esnelsias\Desktop\cmd.exe)" 로 써도 됨.string literal: https://en.cppreference.com/w/cpp/language/string_literal