예를 들어 A 코드에서 B 코드에 있는 함수를 가져와서 씁니다. 이때 B 코드의 함수를 제대로 받아올 경우엔 그 함수를 진행하고, 받아오지 못할 경우에는 다른 코드를 진행하려 하는데 어떻게 코드를 짜면 좋을까요??
실제로 이런 식으로 쓰이는 일이 많다던데.. 예시로 쓰이는 코드도 알려주시면 감사감사
//리턴값 fnB ( 주소 참조 변수 Callby Reference ) <---- 네이버 검색. 구글 검색. 네이버 책. 도서관. 서점 찾아보기. int fnB( int & nRef ) { nRef = 10; return 20; } fnA() { int nRef = 0; int r = fnB( nRef ); if( r == 0 ) { fnC(); } if( nRef == 0 ) { fnD(); } }
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
fnB 함수에서 return 0 인가요??
여기서 확인하실 수 있습니다.http://codepad.org/
#include <stdio.h> void fnC(){ printf("fnC()\n"); } void fnD(){ printf("fnD()\n"); } #if 0 C++ 컴파일러 .cpp 에서 됩니다. 리턴값 fnB ( 주소 참조 변수 Callby Reference ) <---- 네이버 검색. 구글 검색. 네이버 책. 도서관. 서점 찾아보기. #endif int fnB( int & nRef ) { nRef = 10; return 20; } int main(int argc, char * argv[]) { int nRef = 0; int r = fnB( nRef ); printf("r [ %d ]\n", r); if( r == 0 ) { fnC(); } printf("nRef [ %d ]\n", nRef); if( nRef == 0 ) { fnD(); } return 0; } 출력 결과 r [ 20 ] nRef [ 10 ]
음.. fnC, 혹은 fnD가 선언만 돼 있고 정의가 안 돼 있을 경우엔 에러가 나지 않나요??
항상 main() 이나. 함수위에 선언'이나 정의'되어 있어야 컴파일 됩니다.
선언만으로는 컴파일이 될겁니다. 실행이 안될겁니다.
//선언 void fnC(); void fnD(); //정의 void fnC() { printf("fnC()\n"); } void fnD() { printf("fnD()\n"); }
함수 정의가 안 돼 있는 상황이라서요.. 큭
windows : GetProcAddress ( https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms683212(v=vs.85).aspx ) linux : dlsym ( http://tldp.org/HOWTO/Program-Library-HOWTO/dl-libraries.html )
www.gilgil.net
오.. 얼핏 함수 포인터를 이용하는 방법이 있다고 들었었는데 그때 들은 게 요 방법인가.. 감사함당
gcc 라면 https://en.wikipedia.org/wiki/Weak_symbol 단, 'B 코드' 라는게 라이브러리(.so, .a)라면 적용 불가.
감사합니다~
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
참고해보세요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
fnB 함수에서 return 0 인가요??
fnB 함수에서 return 0 인가요??
리턴값은 20이고. 참조된 nRef 값은 10입니다.
여기서 확인하실 수 있습니다.
http://codepad.org/
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
음..fnC, 혹은 fnD가 선언만 돼 있고 정의가
음..
fnC, 혹은 fnD가 선언만 돼 있고 정의가 안 돼 있을 경우엔 에러가 나지 않나요??
선언만으로는 컴파일이 될겁니다.
항상 main() 이나. 함수위에 선언'이나 정의'되어 있어야 컴파일 됩니다.
선언만으로는 컴파일이 될겁니다.
실행이 안될겁니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
함수 정의가 안 돼 있는 상황이라서요.. 큭
함수 정의가 안 돼 있는 상황이라서요.. 큭
gilgil.net
windows : GetProcAddress ( https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms683212(v=vs.85).aspx )
linux : dlsym ( http://tldp.org/HOWTO/Program-Library-HOWTO/dl-libraries.html )
www.gilgil.net
오.. 얼핏 함수 포인터를 이용하는 방법이 있다고
오.. 얼핏 함수 포인터를 이용하는 방법이 있다고 들었었는데 그때 들은 게 요 방법인가..
감사함당
gcc 라면
gcc 라면 https://en.wikipedia.org/wiki/Weak_symbol
단, 'B 코드' 라는게 라이브러리(.so, .a)라면 적용 불가.
감사합니다~
감사합니다~
댓글 달기