본문 바로가기

프로그래밍/언어_스크립트36

[C/C++] signed 형과 unsigned 형의 비교 char 형이나 short 형의 자료 일 경우 얘기다. signed 자료형에 - 값을 넣으니까 무조건 자리를 0xff로 채운다.char 형은 0xffffffxx를 만들고, short 형은 0xffffxxxx를 만들더라.왜 그럴까... 이유를 따지는건 머리아파 넘어가지만 문제가 발생하는건 넘길수가 없다.단순 사칙연산은 별 탈 없이 잘 수행하는데 unsigned 형과 signed 형의 비교가 들어갈 때 오류를 내게 된다. char c1 = 0xff;unsigned char c2 = 0xff if ( c1 == c2 ) ...else ... 위 문장은 else 쪽을 실행하게 된다. 젠장 2014. 2. 24.
C 함수 C++ 에서 사용하기 http://blog.naver.com/thehighway/150015974079 맹글링 어쩌구 저쩌구하는데... 그냥 쉽게 extern "C" {} 선언 하나면 끝 (맹글링을 막는 효과?) extern "C" void function( .... ); extern "C" {void func1();void func2();void func3();} extern "C" {#include #include } #ifdef __cplusplusextern "C" {#endif #ifdef __cplusplus}#endif 위 문장은 C++로 컴파일 할 때는 맹글링을 막고 , 그렇지 않은 경우는 (C로 컴파일) 정상 컴파일 2013. 11. 24.
[lua] 루아의 독특한 문법 몇가지 #2 #1 Something{ "data1", "data2", "data3", "data4" } Something( { "data1", "data2", "data3", "data4" } ) 두 표현은 동일하다. - Something 이라는 함수에 테이블을 인자로 넘기고 있다. #2 setmetatable( t1, mt ) t1의 메타 테이블로 mt을 설정한다.당연히 t1 과 mt는 테이블 구조여야함 #3 메타테이블의 __add, __mul, __sub, __div, __unm, __mod, __pow, __concat, __eq, __lt, __le 등을 가지고연산자 재정의를 할 수 있다. +, *, -, /, ~, %, ^, ==, = 위 항목에 각 연산을 수행할 함수를 정의하여 할당하면 된다. #4 Som.. 2013. 11. 14.
[lua] 루아의 독특한 문법 몇가지 #1 a = { }x = "y"a[x] = 10 print( a[x] ) ---> 10print( a.x ) ---> nulprint( a.y ) ---> 10 a.x 와 a["x"]가 동일하고 a[x]는 다는 표현이다. #2 x = x or v 은 if not x then x = v end 와 같다 #3 for i, v in pairs( a ) do print( v ) end ===> i에는 색인(키), v에는 값을 넣는다. ipairs() 와 pairs() 차이첨이 뭔지 궁금... #4 함수(callee)에서 여러개의 값을 리턴 할 수 있고..받아주는 쪽(caller)에서는 받아주는 변수가 존재하는 만큼 받아준다변수가 더 존재할 경우 그 변수의 값은 nil로 채워지고 부족한 경우 리턴된 값은 버려진다.. 2013. 11. 10.