mein Code:Wie verknüpfe Plus oder Minus in c Makro?
#define CHECK(x) if((x)==100)printf("%s = 100\n",#x);
#define C9(x) CHECK(x##9);CHECK(x##PLUS##9);CHECK(x##MINUS##9);
#define PLUS +
#define MINUS -
int main(){
C9(123-45-67+8);
return 0;
}
das Makro diese erweitern (ich einige \ n hinzufügen, um Code lesbar): auf diese
int main(){
if((123-45-67+89)==100)printf("%s = 100\n","123-45-67+89");;
if((123-45-67+8PLUS9)==100)printf("%s = 100\n","123-45-67+8PLUS9");;
if((123-45-67+8MINUS9)==100)printf("%s = 100\n","123-45-67+8MINUS9");;;
return 0;
}
Und es wird erwartet, erweitern:
int main(){
if((123-45-67+89)==100)printf("%s = 100\n","123-45-67+89");;
if((123-45-67+8+9)==100)printf("%s = 100\n","123-45-67+8+9");;
if((123-45-67+8-9)==100)printf("%s = 100\n","123-45-67+8-9");;;
return 0;
}
Wie geht das? Dank
warum die zweite, wenn zwei Semikolons ';' und die dritte ein drei hat? – Mike
, weil ich in jedem Makro Semikolons ';' hinzufüge. – zh19970205
Werden Sie jemals 'PLUS' in einen anderen Operator ändern? (was eine sehr, sehr schlechte Idee ist!) Wenn nicht, warum nicht die Symbole verwenden, sondern den Code verschleiern? – Olaf