suraty
جمعه 27 خرداد 1390, 19:33 عصر
با سلام
این کد مربوط می شود به مثال تابع setvect در help خود کامپایلر. از همه ی دوستانی که حتی خیلی کم از این کد سر در می آورند عاجزانه تقاضامندم کمک نمایند. چون من اصلا متوجه نمی شوم.:افسرده:
/* getvect and setvect example */
/* * * * * * * * * * * * * * *
NOTE: This is an interrupt service routine.
You can NOT compile this program with
Test Stack Overflow turned on and get an
executable file that will operate correctly.
* * * * * * * * * * * * * * */
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#define INTR 0X1C /* The clock tick interrupt */
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
void interrupt ( *oldhandler)(__CPPARGS);
int count=0;
void interrupt handler(__CPPARGS)
{
/* increase the global counter */
count++;
/* call the old routine */
oldhandler();
}
int main(void)
{
/* save the old interrupt vector */
oldhandler = getvect(INTR);
/* install the new interrupt handler */
setvect(INTR, handler);
/* loop until the counter exceeds 20 */
while (count < 20)
printf("count is %d\n",count);
/* reset the old interrupt handler */
setvect(INTR, oldhandler);
return 0;
}
این کد مربوط می شود به مثال تابع setvect در help خود کامپایلر. از همه ی دوستانی که حتی خیلی کم از این کد سر در می آورند عاجزانه تقاضامندم کمک نمایند. چون من اصلا متوجه نمی شوم.:افسرده:
/* getvect and setvect example */
/* * * * * * * * * * * * * * *
NOTE: This is an interrupt service routine.
You can NOT compile this program with
Test Stack Overflow turned on and get an
executable file that will operate correctly.
* * * * * * * * * * * * * * */
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#define INTR 0X1C /* The clock tick interrupt */
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
void interrupt ( *oldhandler)(__CPPARGS);
int count=0;
void interrupt handler(__CPPARGS)
{
/* increase the global counter */
count++;
/* call the old routine */
oldhandler();
}
int main(void)
{
/* save the old interrupt vector */
oldhandler = getvect(INTR);
/* install the new interrupt handler */
setvect(INTR, handler);
/* loop until the counter exceeds 20 */
while (count < 20)
printf("count is %d\n",count);
/* reset the old interrupt handler */
setvect(INTR, oldhandler);
return 0;
}