Release와 Debug 모드에서 가변변수가 입력되는 순서가 요상하게 다르다.
아래와 같은 함수에서, ...의 가변변수 부분에는 double * 가 넘어간다.
debug 모드에서는 분명히 va_start 다음에 va_arg 를 부르면 그 다음 차례인 len이 넘어오는데,
release 모드에서는 앞에 명시한 n과 len은 무시하고 va_arg를 호출하는 순간 ...의 가변변수 (즉 double *) 가 차례대로 넘어온다...
void call_v_arg(int n, int len, ...){
va_list va;
va_start( va, n);
// double *test = va_arg( va, double* );
// len = va_arg( va, int );
}
현재 MS .net 2005 sp1 사용중인데, 이건 MS VC만의 문제(?)일까? 아니면 원래 표준이 그렇게 되어 있는 것일까? 흠... 혹시 아시는 분 계신가요? ^^;;
아래와 같은 함수에서, ...의 가변변수 부분에는 double * 가 넘어간다.
debug 모드에서는 분명히 va_start 다음에 va_arg 를 부르면 그 다음 차례인 len이 넘어오는데,
release 모드에서는 앞에 명시한 n과 len은 무시하고 va_arg를 호출하는 순간 ...의 가변변수 (즉 double *) 가 차례대로 넘어온다...
void call_v_arg(int n, int len, ...){
va_list va;
va_start( va, n);
// double *test = va_arg( va, double* );
// len = va_arg( va, int );
}
현재 MS .net 2005 sp1 사용중인데, 이건 MS VC만의 문제(?)일까? 아니면 원래 표준이 그렇게 되어 있는 것일까? 흠... 혹시 아시는 분 계신가요? ^^;;
'컴퓨터 & 프로그래밍 > etc.' 카테고리의 다른 글
Mendeley+워드 사용시 max-element-depth 에러 (0) | 2014.12.01 |
---|---|
오피스 팁 (0) | 2014.07.21 |
winXP 홈에디션에서 보안탭 만들기 (0) | 2011.04.12 |
좋은 논문을 쓰는 방법에 관한 글 모음 (0) | 2008.06.27 |
Steve Jobs & Bill Gates (0) | 2007.06.05 |