C 编程#define? [复制]

2023-11-27

可能的重复:
谁能解释这些未定义的行为(i = i++ + ++i,i = i++,等等......)

#include<stdio.h>
#include<conio.h>

#define SQ(x) x*x

void main()
{
   int a1 , a2;
   int b1 , b2;

   a1 = 2;
   a2 = 2;

   b1 = 0;
   b2 = 0;

   b1 = SQ(a1++);
   b2 = SQ(++a2);

   printf("Frist = %d",b1);
   printf("Second = %d",b2);
}

我知道代码的输出是什么。

作为其他程序中的 #define 工作 这样它在上面的代码中不起作用 为什么。?


对同一变量使用多个 ++ 运算符的表达式的结果是正式的未定义的行为 in C.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 编程#define? [复制] 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 重载<<的返回值

    include
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 在 sed -f 中使用变量(其中 sed 脚本位于文件中而不是内联)

    我们有一个进程可以使用包含以下内容的文件sed改变管道输入的命令 我需要用变量值替换输入中的占位符 例如在一个单一的 e我可以运行的命令类型 echo Today is XX sed e s XX date F Today is 2012
  • 在 BAT 脚本中检查目录是否可写的最佳方法?

    如何通过批处理脚本检查执行用户是否可写入目录 到目前为止 这是我尝试过的 gt cd PROGRAMFILES gt echo gt foo Access is denied gt echo ERRORLEVEL 0 好吧 那怎么样 gt
  • python中字符串到列表的转换

    我有一根绳子 s 1989 1990 我想使用 python 将其转换为列表 并且我希望输出为 s 1989 1990 有没有最快的单班轮方式 Use 列表推导式 s 1989 1990 x strip for x in s split 简
  • jQuery .hasClass() 与 .is()

    从性能的角度来看 是否有一种首选方法来确定元素是否分配有类 foo hasClass bar or foo is bar Update 我在一条评论和四张评论后进行了测试 事实证明我说的是正确答案 结果如下 http jsperf com
  • PayPal NVP API 错误:抱歉,我们目前无法完成您的购买

    我正在使用 PayPal NVP API 当我使用沙箱帐户和沙箱 API ENDPOINT 时 效果很好 当我使用生产帐户和生产API ENDPOINT时 它成功重定向到PayPal 但用户输入paypal用户名和密码并提交后 显示 抱歉
  • 了解键盘布局何时更改

    我正在编写一个屏幕键盘 并且希望在键盘布局更改后立即重新绘制布局 目前我打电话 GetKeyboardLayout GetWindowThreadProcessId GetForegroundWindow NULL 在每次按键时查看布局是否
  • WPF 中的配置管理器

    我在 wpf 项目中有一个配置文件来存储连接字符串 但是当我尝试获取 AppSettings 和 ConnectionStrings 时 我得到 null WEB config 文件是这样的
  • numpy genfromtxt/pandas read_csv;忽略引号内的逗号

    考虑一个文件 a dat 内容 address 1 address 2 address 3 num1 num2 num3 address 1 address 2 address 3 1 0 2 0 3 address 1 address 2
  • 如何在类中并行化 python 中的 for ?

    我有一个 python 函数funz每次都会返回长度为 p 的不同数组 我需要多次运行该函数 然后计算每个值的平均值 我可以使用 for 循环来完成此操作 但需要很多次 我正在尝试使用库多处理 但遇到错误 import sklearn as
  • Vue 3 反应性未从类实例内部触发

    代码笔 https codepen io codingkiwi pen XWMBRpW 假设你有一堂课 class MyClass constructor this entries a example change triggered fr
  • 对 NSDate 的 NSArray 进行排序

    我有一个 NSDate 对象的 NSArray 我想对它们进行排序 以便今天为 0 昨天为 1 等 是升序还是降序 我是否使用函数 选择器或其他什么 NSArray 有不同的排序方法 因为您可能需要不同的排序方式 NSSortDescrip
  • 读取套接字:EAGAIN:资源暂时不可用

    我用 C 创建了一个套接字 我需要它有一定的连接超时 这就是正在发生的事情 创建套接字 使其成为非阻塞 呼叫连接 它按预期返回 1 和 errno EINPROGRESS 呼叫选择 返回 gt 0 表示已建立连接 使套接字再次阻塞 这部分的
  • 如何使用 ImageMagick 获取整个图像文本中的 RGB 像素值?

    我是 ImageMagick 的新手 我想知道图像整个像素的 RGB 颜色 我已经知道如何获取一个像素的 RGB 颜色 但我不知道如何用一个命令获取所有像素的数据 对每个像素执行每个命令非常繁重 无法使用它 最好的命令结果是这样的 x y
  • 我的公报上的实体无法识别

    我想创建一个自定义 NER 模型 这就是我所做的 训练数据 斯坦福 ner tsv Hello O O My O name O is O Damiano PERSON O 特性 stanford ner prop trainFile sta
  • iPhone 子视图设计(UIView 与 UIViewController)

    我正在设计一个简单的测验应用程序 应用程序需要显示不同类型的测验问题 每种类型的 QuizQuestion 都有不同的行为和 UI 用户界面将是这样的 替代文本 http dl getdropbox com u 907284 Picture
  • Java 8 lambda 和匿名内部类之间的性能差异

    在 Java 8 之前 可以通过使用匿名内部类来实现 lambda 功能 例如 interface Lambda void doStuff public void doWithCallback Lambda callback callbac
  • 使用 Firebase 的服务器端计算

    给定开始时间 日期和持续时间 我如何进行服务器端计算来确定对象是否为 finished in progress or upcoming Show duration 144 startDate 2015 11 10 startTime 14
  • 如何在 Lisp 中创建并写入文本文件

    我想知道如何在 Lisp 中创建和写入文本文件 我只想写简单的一行 例如 break 1 break 2 我在 Window 7 上使用 LispWorks IDE with open file str filename txt direc
  • Laravel 5 REST 客户端 CRUD

    Laravel 5 有没有办法使用 REST 进行 CRUD 我已经有一个使用 CodeIgniter 的 REST API 并且我希望我的 Laravel 应用程序能够与其通信 假设我有这个网址来获取所有性别 http api local
  • C 编程#define? [复制]

    这个问题在这里已经有答案了 可能的重复 谁能解释这些未定义的行为 i i i i i 等等 include