?? nat.c
字號:
#include <stdio.h>#include <stdlib.h>#include "mystdlib.h"#include "error.h"#include "commonInter.h"#include "myint.h"#include "nat.h"static int flag = 1;struct nat{ tyVft vft; int i; plist pplist;};struct tyVft natVft;nat newNat (int i){ if (i<0) { printf ("%d\n", i); exception ("invalid argument in file nat.c: i = "); return NULL; } if (flag) { flag--; natVft.equals = natEquals; natVft.hashCode = hashCode; natVft.toString = natToString; natVft.getPlist = natPlist; } nat n = checkedMalloc (sizeof (*n)); n->vft = &natVft; n->i = i; n->pplist = newPlist (); return n;}nat natAdd (nat n1, nat n2){ int i1 = n1->i; int i2 = n2->i; return newNat (i1+i2);}nat natSub (nat n1, nat n2){ int i1 = n1->i; int i2 = n2->i; return newNat (i1-i2);}nat natTimes (nat n1, nat n2){ int i1 = n1->i; int i2 = n2->i; return newNat (i1*i2);}int hashCode (poly n){ return ((nat)n) -> i;}plist natPlist (poly n){ return ((nat)n)->pplist;}int natToInt (nat n){ return n->i;}void natOutput (poly n){ printf ("%d", ((nat)n)->i);}int natEquals (poly n1, poly n2){ return (((nat)n1)->i == ((nat)n2)->i);}str natToString (poly n){ return intToString (((nat)n)->i);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -