- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的程序。为什么这段代码会出错?它在多行宏中使用括号。我在 GeeksforGeeks 的一篇文章中找到了这一点
#include <stdio.h>
#define MACRO(num, str) ({\
printf("%d", num);\
printf(" is");\
printf(" %s number", str);\
printf("\n");\
})
int main(void)
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (num & 1)
MACRO(num, "Odd");
else
MACRO(num, "Even");
return 0;
}
最佳答案
使用 clang,代码实际上可以编译,但它会给出一些警告。生成警告的原因是宏定义中的括号和大括号,或者更准确地说,是因为 if-else 语句中缺少大括号。您可以将代码重写为以下形式:
#include <stdio.h>
#define MACRO(num, str) \
printf("%d", num);\
printf(" is");\
printf(" %s number", str);\
printf("\n");
int main(void)
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (num & 1)
{
MACRO(num, "Odd");
}
else
{
MACRO(num, "Even");
}
return 0;
}
您可以进一步简化代码:
#include <stdio.h>
#define MACRO(num, str) printf("%d is %s number\n", num, str);
int main(void)
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (num & 1)
{
MACRO(num, "Odd");
}
else
{
MACRO(num, "Even");
}
return 0;
}
关于c - 为什么这段代码会出错?它在多行宏中使用括号。我在 GeeksforGeeks 的一篇文章中找到了这一点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35955780/
我正在尝试实现 geeksforgeeks.com 上使用的插入功能,但在尝试将其应用于我当前的代码时遇到了一些问题。 我有一个 vector ,其中包含我需要放入二叉树的数据。我使用这个函数将数字传
你能帮我解决这个 geeksforgeeks 的问题吗 给定一个正整数的 N X N 矩阵 Matrix[N][N]。一个单元格 Matrix[r][c] 只有三种可能的走法。 矩阵[r+1][c]
这是我的代码 #include using namespace std; int srch(vector arr, int ln, int fn) { for (int i = 1; i
我试图将我的注意力集中在信号上,所以我首先在 GeeksforGeeks 信号页面上运行代码。在他们的页面上,它显示了来自父级和子级的输出,但是当我在 CLion 中运行时,9/10 次我只接收来自父
我正在做来自 geeksforgeeks.org 的“k 最大元素”练习 https://practice.geeksforgeeks.org/problems/k-largest-elements/
这是我的程序。为什么这段代码会出错?它在多行宏中使用括号。我在 GeeksforGeeks 的一篇文章中找到了这一点 #include #define MACRO(num, str) ({\
gfg https://practice.geeksforgeeks.org/problems/subset-sum-problem2014/1 代码 https://leetcode.com/pro
问题:https://practice.geeksforgeeks.org/problems/array-of-alternate-ve-and-ve-nos1401/1# 我的代码添加在下面。它在我
我是一名优秀的程序员,十分优秀!