#define MIN(A,B) ((A) <= (B) ? (A) : (B))
das ist das Makro, ich wurde gefragt, was der Nebeneffekt wäre, wenn ich Folgendes benutze:
least = MIN(*p++, b);
Hinweis: Dies war eine eingebettete C-Frage
#define MIN(A,B) ((A) <= (B) ? (A) : (B))
das ist das Makro, ich wurde gefragt, was der Nebeneffekt wäre, wenn ich Folgendes benutze:
least = MIN(*p++, b);
Hinweis: Dies war eine eingebettete C-Frage
Gehen Sie davon aus, dass die Anfangsadresse von p = 0xfcf0 ist, *p = 1, b = 2, Wert @ 0xfcf4 = 5 und Wert @ 0xfcf8 = 15
Das Makro wird wie folgt erweitert:
least = ((*p++) <= (b) ? (*p++) : (b));
d.h. least = ((1) <= (2) ? (*p++) : (b));
da *p zweimal erhöht wird.
1) *p++ --> jetzt zeigt p auf Adresse 0xfcf4;
2) *p++ --> jetzt zeigt p auf Adresse 0xfcf8;
Also least = 15; (die Werte in der Adresse 0xfcf8). Hoffe, es hilft.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.