캐스팅될꺼같은데 하는법을 모르겠군요. 아시는분..
함수에 따라 틀린데... int test(int a, char *b, int c) 형태로 casting 하면
((int (*)(int, char *, int))ptr)(a, b, c)
이렇게..
뭐 비슷하게 하면 됩니다.
from saibi
void *를 보통 generic pointer라고 합니다만, 이는 일반적인 data를 가리키는 포인터이지, 함수 포인터를 가리키는 포인터로 쓰일 수 있는 것은 아닙니다.
보통은 void (*)(void)등의 함수 포인터를 선언해 놓고, 여기에 (캐스팅을 해서) 함수 포인터를 대입한 다음, 원할 때 (다시 원래의 함수 포인터로 캐스팅해서) 쓰는 것이 좋습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
함수에 따라 틀린데... int test(int a, char *b, int c) 형태로 casting 하면 ((int (*)(int, char *, int))ptr)(a, b, c) 이렇게.. 뭐 비슷하게 하면 됩니다.
----------------------------------------------------------------------------
과거 MS-DOS가 수행중일때, 메모리 보호가 없을때(임의의 주소를 사용 가능할때), 부팅시키는 프로그램이지요. 지금은 좀... 이지만, 한때 유망했던 볼랜드 C 컴파일러 버전입니다. 돌려볼 환경이나 있을런지...
* Warm부트는 도스의 리부팅(?) 인터럽트를 호출하는것이고, * 하드부트는 바이오스 의 부트 시작 코드를 맵핑해서 호출하는 것입니다.
/* 도스에서만 도는 코드 */ int main (int argc, char *argv[]) { void (far *bootsystem) (void); if ((toupper (argv[1][0]) == 'W') || (toupper (argv[1][0]) == 'S')) { unsigned far *warm; warm = MK_FP (0x0000, 0x0472); *warm = 0x1234; puts ("\nWarm boot in progress...\n"); } else puts ("\nCold boot in progress...\n"); bootsystem = MK_FP (0xFFFF, 0x0000); //주소값을 직접 입력하는 매크로; 이 주소는 x86 CPU리셋이 걸리면(전원오면), 최초 리얼모드이고, CS:IP가 가리키는 주소. (*bootsystem) (); // 음 ... return (0); }
텍스트 포맷에 대한 자세한 정보
<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]
함수에 따라 틀린데...int test(int a, char *b,
함수에 따라 틀린데...
int test(int a, char *b, int c) 형태로 casting 하면
((int (*)(int, char *, int))ptr)(a, b, c)
이렇게..
뭐 비슷하게 하면 됩니다.
from saibi
void *를 보통 generic pointer라고 합니다만, 이는 일반
void *를 보통 generic pointer라고 합니다만, 이는 일반적인 data를 가리키는 포인터이지, 함수 포인터를 가리키는 포인터로 쓰일 수 있는 것은 아닙니다.
보통은 void (*)(void)등의 함수 포인터를 선언해 놓고, 여기에 (캐스팅을 해서) 함수 포인터를 대입한 다음, 원할 때 (다시 원래의 함수 포인터로 캐스팅해서) 쓰는 것이 좋습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
[quote="new5244"]함수에 따라 틀린데...int test
감솨.
----------------------------------------------------------------------------
과거 MS-DOS가 수행중일때, 메모리 보호가 없을때(임의의 주소를 사용
과거 MS-DOS가 수행중일때, 메모리 보호가 없을때(임의의 주소를 사용 가능할때), 부팅시키는 프로그램이지요.
지금은 좀... 이지만, 한때 유망했던 볼랜드 C 컴파일러 버전입니다.
돌려볼 환경이나 있을런지...
* Warm부트는 도스의 리부팅(?) 인터럽트를 호출하는것이고,
* 하드부트는 바이오스 의 부트 시작 코드를 맵핑해서 호출하는 것입니다.
댓글 달기