Diese Frage in einem Mock Interview mir gefragt wurde ... Wirklich bekam überrascht peinliche Antworten zu finden ...Verwirrt von Makro SQR in c quadriert
betrachten ein Makro:
#define SQR(x) (x*x)
Beispiel 1:
SQR(2) //prints 4
Beispiel 2:
Wenn SQR (1 + 1) gegeben ist es nicht (1+1)
-2
sondern ...
SQR(1+1) //prints 3
Ungeschickte Recht hat Summe? Was ist der Grund? Wie funktioniert dieser Code?
HINWEIS: Ich suchte SO, konnte aber keine relevanten Fragen finden. Wenn es welche gibt, bitte teile es mit!
Hint : Lesen Sie die Ausgabe des ** pre ** - Prozessors. – SLaks
'SQR (1 + 1)' expandiere nach '(1 + 1 * 1 + 1)' == 3, ändere zu ((x) * (x)) – BLUEPIXY
Dies ist der C-Präprozessor. Sie können dasselbe Verhalten erreichen, wenn Sie den C-Präprozessor mit einer beliebigen Sprache verwenden. – user7116