1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #include <stdio.h>
#include <dos.h>
#include <conio.h>
#define INTR 0X1C /* est ce que « 0X1C » cest le numéro de linterruption dans le vecteur des interruptions */
#ifdef __cplusplus /* selon mes recherche sur internet, __cplusplus définie uniquement dans le cas d'une compilation C++ et on pourra utiliser cette chaîne de remplacement pour distinguer les parties de code écrites en C++ de celles écrites en C */
#define __CPPARGS ... /* pourquoi cette instruction */
#else
#define __CPPARGS /*si elle nest pas défini alors en la définir maintenant mais elle sert a quoi */
#endif
Le grand problème et la :
void interrupt ( *oldhandler)(__CPPARGS); /*lutilisation de la fonction interrupt et différente de la déclaration dans le help du turbo C a cause du (__CPPARGS); ! */
int count=0; /*la réinitialisation du compteur appartient à la procédure void interrupt oldhandler ? Si oui pour quoi on nutilise pas accolades {} de la fonction void */
void interrupt handler (__CPPARGS)
{
/* increase the global counter */
count++; // il est ou le temps!
/* 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) /*comment se fait l'incrémentation selon quel critère ' je c'est qui'il comptepar l'instruction c++; mais je veux que la fonction dure 30 seconde*/
printf("count is %d\n",count);
/* reset the old interrupt handler */
setvect(INTR, oldhandler);
return 0;
} |
Partager