#define宏定義形式的函數導致的bug

定義了一個宏定義形式的"函數":

#define? SUM8(YY)\

{\

???? int Y = YY>>2;\

? ...\

}

然后使用的時候,傳入了一個同名的變量Y:

int? Y = Ywin[x];

SUM8(Y)

本意是想展開成int Y = Ywin[x]>>2;

但實際上#define只是把參數名(YY)替換,與函數形式不同,其實展開的結果變成了:

int Y = Ywin[x];

{

int Y = Y>>2;//僅僅把YY替換成參數Y

}

那么 int Y = Y>>2;這句是先定義局部變量Y,再等于自己右移兩位。

以后使用#define形式的"函數"必須格外小心。

?

轉載于:https://www.cnblogs.com/mlj318/p/6141248.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255812.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255812.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255812.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【深度學習】——BN層(batch normalization)

目錄 一、“Internal Covariate Shift”問題 二、BatchNorm的本質思想 兩個參數r和β的意義——精髓所在 三、訓練階段如何做BatchNorm 四、BatchNorm的推理(Inference)過程 五、BatchNorm的好處 一般使用在卷積層后、激活層前 Batch Normalization作為最近一年來DL的重要…

打印池

餐飲行業,打印池是必要的部件。 實現原理:每一臺打印機都有自己的任務隊列和處理任務隊列的線程。 unit untPrintTask; interface uses System.SysUtils, System.Classes, Datasnap.DBClient, frxclass, System.Generics.Collections; type TBillContent…

JAXB vs XStream

2019獨角獸企業重金招聘Python工程師標準>>> JAXB vs XStream 博客分類: java JAXB vs XStream 這兩東東本質上是有差別的,JAXB稱為OX binding工具,XStream應該算序列化工具,但OX binding工具也會marshall和unmarsha…

ABB 機器人 DRVIO_1通信報警

ABB 機器人DRVIO_1通信報警 2014.06.13 ABB1600弧焊機器人,從A地搬運到B地,到達B地后,機器人上電,報DRVIO_1通信故障,機器人進入故障停止模式。 DRVIO_1為LOCAL_GENERIC類型的ABB內部LOCAL總線類型的單元實例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目錄結構 : EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…

ABB 機器人 添加多任務

首先,需要啟用多任務選項的控制器。 要做到這一點,創建一個新的機器人控制器RobotStudio站 - >選擇機器人(控制器菜單) - >.................. - >系統生成器 - >選擇控制器 - >修改...下一頁 - >下一步 - >…

poj2594(二分圖,最小路徑覆蓋變形)

Treasure ExplorationTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 7611 Accepted: 3126Description Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? …

【機器視覺】——相機鏡頭篇

目錄 一、相關概念 1、相機 2、鏡頭 二、相關參數 1、相機參數 1)芯片尺寸

閉包(計算機科學)

在計算機科學中,閉包(Closure)又稱詞法閉包或函數閉包。是引用了自由變量的函數。這個被引用的自由變量將會和函數在一起。即使離開了創建它的環境也不例外。所以另一種關于閉包的說法:由函數和其引用相關的環境構成的實體。閉包在…

C語言小機器人

[cpp] view plaincopyprint? # include <stdio.h> # include <stdlib.h> # define MAXSTR 200 # define REBOT "小C說: " # define YOUR "您 說: " # define EXIT "-e\n" # define NOREPLY "我不知道你說什么呢…

分享12306搶票心得-終極秒殺思路篇

12306搶票的關鍵拼的就是整點出票的速度&#xff0c;快的幾秒鐘&#xff0c;慢的幾分鐘&#xff0c;本文提供終極搶票攻略&#xff0c;通過多線程掃描上萬個CDN&#xff0c;來大幅度提升出票速度。準備一&#xff1a;需要了解CDN和切站的機制&#xff0c;請參考&#xff1a;分享…

JVM內幕:Java虛擬機詳解

為什么80%的碼農都做不了架構師&#xff1f;>>> 這篇文章解釋了Java 虛擬機&#xff08;JVM&#xff09;的內部架構。下圖顯示了遵守 Java SE 7 規范的典型的 JVM 核心內部組件。 上圖顯示的組件分兩個章節解釋。第一章討論針對每個線程創建的組件&#xff0c;第二章…

【機器視覺】——光源篇(分類、選型)

目錄 ? 一、光源相關知識 1、光的作用 2、光的顏色 二、光源的種類

ABB機器人 系統參數配置

系統參數用于定義系統配置并在出廠時根據客戶的需要定義。 可使用 FlexPendant 或 RobotStudio Online 編輯系統參數。 此步驟介紹如何查看 系統參數配置。 操作 &#xff1a; 1. 在 ABB 菜單上&#xff0c;點擊控制面板。 2. 點擊配置。顯示選定主題的可用類型列表。 3. 點…

MFC BCGControlBar 庫 使用方法

安裝 BCGControlBar 庫到你的計算機&#xff1a; 解壓縮 BCGControlBar.zip &#xff08;比如&#xff0c;到 c:\bcg 目錄中&#xff09;把 c:\bcg\bin 增加到你的 path 環境變量中&#xff0c;運行 Visual C 并且打開 Tools | Options 對話框&#xff0c;切換到Directories 頁…

四則運算2開發簡介

四則運算2在四則運算1的基礎之上&#xff0c;又添加了新的功能&#xff0c;但是我覺得四則運算2的難度比四則運算1增大了很多&#xff0c;我在編程的過程中&#xff0c;遇到的最大難度就是不知該如何更好的融合各個功能之間的關系。 寫到現在&#xff0c;四則運算2主要實現了以…

ABB機器人的 備份與恢復

保存內容 備份功能可保存上下文中的所有系統參數、系統模塊和程序模塊。 備份內容 數據保存于用戶指定的目錄中。 默認路徑可加以設置。 目錄分為四個子目錄&#xff1a;Backinfo、Home、Rapid 和 Syspar。 System.xml 也保存于包含用戶設置的 ../backup &#xff08;根…

flask項目開發中,遇到http 413錯誤

在flask項目中&#xff0c;上傳文件時后臺報http 413 Request Entity Too Large 請求體太大錯誤&#xff01; 解決的2種方法&#xff1a; 1.在flask配置中設置 MAX_CONTENT_LENGTH的值; 如設置為20M ( MAX_CONTENT_LENGTH20*1024*1024) 這時小于20M的文件都可以上傳 相關連接&…

【機器視覺】——畸變與矯正

目錄 一、什么是畸變?畸變的原因是什么? 1、徑向畸變(桶形畸變和枕形畸變)