1. 程式人生 > >C/C++: 常用定義常量方法記錄

C/C++: 常用定義常量方法記錄

方式 1:  巨集定義(替換)方式定義常量(只是實現類似效果):(嚴格來講並不是常量沒有型別,也不會分配記憶體空間,所以不能稱為量,但可以實現類似常量的效果)  (1) 為一些反覆使用常數定義標識        eg. #define PI 3.14   a.  程式怎麼處理巨集定義:程式開始編譯之前,就是預編譯階段,會使用3.14替換程式中使用的PI。   b. PI作為常數的巨集替換,是不能作為左值使用,所以常把這種巨集定義稱為定義常量。   c. 巨集定義一定要記住的一個核心要點: 它只是  替換!!!      eg.        常見錯誤:由於巨集是預編譯階段的文字替換,很容易在忽視運算子優先順序的情況下發生錯誤。            #define  M  10            #define  N   M+5            int x= M*X;            在以上的程式碼中,編寫者很可能希望表示式M*N的值等10*15,即150.但實際上,表示式M*N將被替換為10*10+5,即105.由於巨集定義的缺陷,不論C還是C++,都推薦使用const,即下面這種方式。方式 2 修飾符 const:   使用:const限定符修飾變數時,被修飾的變數成為常量。常量不能做左值,宣告時必須定義
。例如:        const double PI=3.14;

相關推薦

C/C++: 常用定義常量方法記錄

方式 1:  巨集定義(替換)方式定義常量(只是實現類似效果):(嚴格來講並不是常量,沒有型別,也不會分配記憶體空間,所以不能稱為量,但可以實現類似常量的效果)  (1) 為一些反覆使用常數定義標識        eg. #define PI 3.14   a.  程式怎麼處

C語言中定義常量的兩種方式

我們在用C程式設計時有時需要定義不變的變數,即常量,有兩種方法。舉例說明。 定義常量PI的兩種方式: 1. #define Pi 3.1415926f; 2. const float pi 3.1415926f; 區別: 第一種方式:是將Pi定義成一種符號,此時Pi只是3.1415926的別名,在編譯期間用

C#陣列常用屬性和方法

常用屬性和方法: 1.Length方法:所有維數中元素的總和     int [] Array = {1,2,3,4,5}; int number = Array.Length; /

C++編譯報錯解決方法記錄

編寫C++多執行緒程式時,報錯: terminate called after throwing an instance of 'std::system_error'   what():  Enable multithreading to use std::thread:

c# distinct自定義重寫方法

現在有一個類定義如下 public class CreateTestUnitSrvInputCollection  {         private int mParentId;         /// <summary>         /// 所屬構建標籤

java中定義常量方法

一、常量定義的基本注意事項。    在Java語言中,主要是利用final關鍵字(在Java類中靈活使用Static關鍵字)來定義常量。當常量被設定後,一般情況下就不允許再進行更改。如可以利用如下的形式來定義一個常量:final double PI=3.1315。在定義這個

[轉]C/C++定義全域性變數/常量幾種方法的區別

在討論全域性變數之前我們先要明白幾個基本的概念: 原文章地址:https://www.cnblogs.com/wanghetao/p/4492582.html 1. 編譯單元(模組):     在IDE開發工具大行其道的今天,

定義C/C++全域性變數/常量幾種方法的區別

在討論全域性變數之前我們先要明白幾個基本的概念: 1. 編譯單元(模組):     在IDE開發工具大行其道的今天,對於編譯的一些概念很多人已經不再清楚了,很多程式設計師最怕的就是處理連線錯誤(LINK ERROR), 因為它不像編譯錯誤那樣可以給出你程式錯誤的具體位置,你常常對這種錯誤感到懊惱,但是如果你

C/C++定義全域性變數/常量幾種方法的…

在討論全域性變數之前我們先要明白幾個基本的概念: 1. 編譯單元(模組):     在IDE開發工具大行其道的今天,對於編譯的一些概念很多人已經不再清楚了,很多程式設計師最怕的就是處理連線錯誤(LINK ERROR), 因為它不像編譯錯誤那樣可以給出你程式錯誤的具體位置,你常常對這種錯誤感到懊惱,但是如果你

C++中兩種定義常量方法

   常量是在程式執行時,不會被修改的量。    使用常量有以下幾個好處:     (1)增強程式的可讀性。     直接使用數字或是字串,程式設計師可能會忘記或是弄混其意思。而使用有 意義的常量代

記錄C#中的擴展方法

也不能 sea eal 我們 數列 繼承 開頭 類型 自帶 C#中的擴展方法。 系統自帶的類型,我們無法去修改; 修改源代碼需要較大的精力,而且可能會帶來錯誤; 我們只是需要一個或者較少的幾個方法,修改源代碼費時費力; 被擴展的類是sealed的,不能被繼承;(

c#.net常用函數和方法集(網上找的,僅自用,非原創)

數據 rect 新建 ati 得到 server doc IT ria 1、DateTime 數字型 System.DateTime currentTime=new System.DateTime(); 1.1 取當前年月日時分秒 cur

Java的陣列定義方法過載——有C++基礎的Java入門(三)

目錄 一、 陣列的定義 1、定義 2、 原理 3、 賦值方式 二、Java的方法過載 1、 概念 (1) 過載 (2) 目的 2、例子 (1) 比較兩個數值的大小 (2) 執行方式及結果 一、 陣列的定義 1、定義 資料型別 [ ]&n

C++:避免結構體重複定義方法

最近在做專案移植工作,將MFC的單文件專案由XP+VC6.0移植到WIn10+VS2017,由於專案本身用到了MFC的第三方可視庫,GuiLib和CJ609Lib,需要從網上下來原始碼在新平臺上移植通過。 在專案使用第三方庫的同時,編譯提示結構體CMenuItemInfo重定義,後來研究

C#字串常用方法

字串 字串也可以通過下標訪問該字串裡面的字元 字串常用的方法: Intdexof()檢索字串中的字元的下標 Lastindexof()從後面向前檢索字元下標 Trim()去掉字串開始的空格 Toupper()轉換為大寫 Tolowe

C++ string 常用函式/方法

要想使用標準C++中string類,必須要包含 `#include <string>` // 注意是<string>,不是<string.h>,帶.h的是C語言中的標頭檔案 using std::string; using std::wst

關於c標籤常用記錄

最近一直在jsp頁面轉悠,後端的框架和程式碼很容易按模子套完,因為常用到c標籤的語法,因此做一個小記錄 1.c標籤的if判斷物件(bean)是否為空 <c:if test="${empty lsdbXxList}"> //判斷lsdbXxList是否為空 為空

C#開發中常用加密解密方法解析

一、MD5加密演算法 我想這是大家都常聽過的演算法,可能也用的比較多。那麼什麼是MD5演算法呢?MD5全稱是message-digest algorithm 5,簡單的說就是單向的加密,即是說無法根據密文推匯出明文。 MD5主要用途: 1、對一段資訊生成資訊摘要,該摘要對該資訊具有唯一性

簡單的C語言巨集定義結合全域性變數的方法實現微控制器串列埠實現透傳模式

何謂透傳? 根據百度百科給出的定義如下:        透傳,即透明傳輸(pass-through),指的是在通訊中不管傳輸的業務內容如何,只負責將傳輸的內容由源地址傳輸到目的地址,而不對業務資料內容做任何改變。        在現實微控制器產品開發過程中,如果存在多個

C# 反射常用幾個基本方法

就我這點水平,怎麼敢說是技術文件呢,我就胡亂吹吹牛逼吧!   簡單說下何為反射:就是我以絕妙且快速的步伐(貌似凌波微步)走過了一條坎坷崎嶇的羊腸古道,而千里之外的你能用灰常牛逼的方式把我所走過的路、經過的樹以及蹂躪過的花花草草在地圖上標記出來(感覺怕不會被你尾隨了吧!)。 總之