[英]Convert char to int in c
只是嘗試使用宏打印數字的平方。 自我解釋的C程序:
#include <stdio.h>
#define numb(a) \
printf(#a * #a)
int main(void) {
int num;
printf("Enter a num: ");
scanf("%d",&num);
numb(num);
return 0;
}
得到錯誤:
main.c: In function ‘main’:
main.c:4:14: error: invalid operands to binary * (have ‘char *’ and ‘char *’)
printf(#a * #a)
^
main.c:10:14:
square(num);
~
main.c:10:4: note: in expansion of macro ‘square’
square(num);
^~~~~~
如何將char轉換為int以成功使用二進制運算符?
您的宏需要是C代碼,因此只需拋開#並為整數寫格式字符串
#include <stdio.h>
#define square(a) \
printf("%d", (a) * (a))
int main(void) {
int num;
printf("Enter a num: ");
scanf("%d",&num);
square(num);
return 0;
}
通過使用“ cc -E main.c -o main.i”檢查預處理器階段的輸出,並檢查預處理器如何將宏轉換為指令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.