프로그래밍/C/C++(28)
-
[C] 예전 스타일 함수 선언. K&R-Style Declarations
들어가며 동료가 회사 c 코드에서 특이한 걸 발견해서 좀 찾아봤다. 함수인데 인자는 괄호 안에 있지만 인자의 타입은 마치 클래스의 initializer-list와 비슷하게 선언된 형태. int foo(a, b, c) int a; int b; int c; { // some code return 0; } 신기하다. 어떻게 함수가 이렇게 생겼을 수가... K&R Style Declarations identifier-list form 이라 부르기도 하는듯 하다. 현대 C/C++에서 사용하는 방식은 parameter type-list form. C언어가 최초로 나왔을 때, 함수 프로토타입에 대한 스펙이 모호했다고 한다. 전방 선언도 있었지만 이도 리턴 타입에 대한 정의일 뿐 었다고 한다. 그래서 함수 선언 시 인..
2019.07.23 -
[C/C++] shift operator 사용 시 주의
서론 회사에서 pvs 정적분석 툴을 사용하는데 엔진 코드에 shift 연산자에 관한 검출 결과가 많았따. https://www.viva64.com/en/w/v610/ 에러는 shift 연산자를 사용할 때 left, right 피연산자가 음수일 때, right 피연산자가 32를 넘어갈 때 등을 고려하고 있다. 예제 const signed long long test[4] = { 1024
2019.07.19 -
[VS] tab, space 보기
Ctrl + R, Ctrl + W
2019.02.27 -
[Boost] 설치
https://www.boost.org/에서 최신버전을 다운 받는다. bootstrap.bat을 실행하면 b2.exe와 bjam.exe가 두 exe가 나온다. 빌드하기b2 바이너리로 컴파일 하고 라이브러리를 뽑아내면 된다. 1b2 toolset=msvc-14.0 variant=debug,release link=static threading=multi address-model=32 runtime-link=sharedcs 대충 이런 꼬라지로 만들면 된다. 옵션은 프로젝트의 성격에 맞게 정하면 된다. 자세한 옵션http://www.viper.pe.kr/cgi-bin/moin.cgi/Boost lib가 뽑아져나온다. 프로젝트 속성에 VC++ 디렉토리 설정에서 폴더를 정해준다.include 디렉토리에 boost_..
2016.03.19 -
[C++] for each 써보기
코드 짠 거 보다가 파트장님이 for each라는 것을 쓰길래 찾아봤다.algorithm의 std::for_each는 자주 봤지만 .. C++에도 for each가 있었나? 하며 찾아봤다. 2015기준 MSDN을 보니 권장하지는 않는다고 적혀있다.아마 범위계열은 for ( type value : values )가 있기 때문에 이것을 미는듯! MSDNhttps://msdn.microsoft.com/en-us/library/ms177202.aspx 123for each (type identifier in expression) { statements}Colored by Color Scriptercs 대충 이런 형태다. 예제https://github.com/ElementalKiss/Cpp/blob/master/..
2016.01.19 -
[C++, Json] jsoncpp 사용하기
json 라이브러리 파일 다운로드 라이브러리 다운 : http://sourceforge.net/projects/jsoncpp/ 새 경로: https://github.com/open-source-parsers/jsoncpp/ 유입이 많은 글이라 한번 확인해봤더니 기존 라이브러리 저장소를 sourceforge에서 github로 옮긴 것으로 보인다. 위 경로에서 README 구경 좀 하다가 release 버전 받아서 해보면 될듯 하다. release 다운: https://github.com/open-source-parsers/jsoncpp/tags 적당히 1.8.x 버전 zip 으로.. 빌드하기 압축을 푼 후 makefiles 폴더에서 sln 솔루션 열기. jsoncpp 솔루션 Project Propertie..
2016.01.06