1.7、enum、#define和typedef的注意點
1、enum預設常量在前一個值的基礎上加1
2、enum型別的變數只能取定義時的離散值
3、enum color
{
GREEN,
RED,
BULE
};
GREEN == 0, RED == 1, BULE == 2
4、enum定義的常量才是真正意義的常量
5、列舉型別和#define的區別
(1)#define巨集常量只是簡單的進行值替換,列舉常量是真正意義上的常量
(2)#define巨集常量無法被除錯,列舉常量可以(GDB)
(3)#define巨集常量無型別資訊,列舉常量是一種特定型別的常量
6、typedef用於給一個已經存在的資料型別重新命名
7、typedef並沒有產生新的型別
8、typedef重定義的型別不能進行unsigned和signed擴充套件
9、#define為簡單的字串替換,無別名的概念
相關推薦
1.7、enum、#define和typedef的注意點
1、enum預設常量在前一個值的基礎上加1 2、enum型別的變數只能取定義時的離散值 3、enum color { GREEN, RED,
Effective C++筆記之二:儘量以const、enum、inline替換#define
一.#define定義的類似函式的巨集,使用時易出錯 缺點描述 這樣做的初衷是,巨集看起來像函式,但不會招致函式呼叫(function call)帶來的額外開銷。但即使你為所有實參加上小括,仍然會在使用時遭遇麻煩。舉個例子: // 求兩個變數中最大的那個 #define THE_MAX(a, b)
Rust 1.7.0 語法基礎 sep_token 和 non_special_token
++ pri ava type mod ont key 代碼 1.7 一、分隔符 sep_token 指的是分隔符, 是除了 * 和 + 之外的不論什麽符號,通常情況下是使用 , 逗號。 比如: 宏的多個參數分隔,以下代碼中的逗號就是 sep_
namespace、struct、enum、union、string(day01)
mic str 歷史 數組 hello 科學 練習 line 空字符串 一 C++概述 1 C++歷史背景 1)C++的江湖地位 jave C C++ C# python 2)C++之父:Bjarne Stroustrup(1950--) 1979,Cpre,為C語言
巨集定義#Define和Typedef的用法和區別
一:各自的定義 (一) Typedef 本身是一種儲存類的關鍵字,在計算機程式語言中用來為複雜的宣告定義簡單的別名。 Typedef 的含義: 找到你所要宣告的通用格式。例如這裡申明 inta[4],b[4],c[4],只有a,b,c不
【C語言】define和typedef的區別
#define是 巨集定義命令,#define DINT int相當於將程式碼中的int可以寫為DINT,DINT等價於int。typedef int TINT; 是型別定義,TINT型別的變數就是int型別的變數。 1.typedef int TINT; 和#define
MySql----資料型別(數值型別、char/varchar、enum、set、date)
一:資料型別分類: 二:數值型別 1.bit bit[(M)] : 位欄位型別。M表示每個值的位數,範圍從1到64。如果M被忽略,預設為1。 例: //表tt3的sno的值有8個位 mysql> create table tt3(age int,sno bit(8))
1.7.關於儲存器的記憶體和外存
儲存器一般包括:記憶體和外存。 記憶體:RAM、ROM等。 外存:磁碟、光碟、固態儲存器等等。 按照工作原理來分: RAM:包括SRAM、DRAM(SDRAM/DDR SDRAM/DDR ii/RD
linux系統學習1-7:裸機開發步驟和工具使用
第001節:裸機開發步驟簡介 步驟 X86平臺 X86平臺 ARM裸機開發 環境 windows應用程式 ubuntu應用程式 第一步
#define和typedef哪一個型別重新命名更好一些
#define型別重新命名 #define uint unsigned int typedef型別重新命名 typedef unsigned int uint 區別:#define進行型別重新命名時新型別名字在前邊,而用typedef進行型別重新命名
#define和typedef在定義指標型別上的優劣
#define和typedef在定義指標型別上的優劣 先說下結論:typedef更佳。下面看看程式碼分析: typedef char *ptr_to_char; char c = 'A'; ptr_to_char var = &c; print
sql資料庫中的using和ExecuteScalar()注意點
int r = (int)cmd.ExecuteScalar();//注意Object型別需強制轉換為int 1.當ExecuteScalar執行的是聚合函式的時候,返回的不可能是null,如果執行的sql語句不是聚合函式返回的有可能是null 2.usin
浮動介紹和定位注意點
本文轉載於:猿2048網站浮動介紹和定位注意點 18年元月24日,一如既往的寫了一會,外面下著雪,我在屋內叼著煙,上班好辛苦
如何在CentOS 7.5、Ubuntu 18.04和Debian 9中安裝Golang 1.11
Golang 是谷歌開發的一種程式語言。由於它的多功能性、簡單性和可靠性, Golang 已經成為開源社群中最受歡迎的程式語言之一。 準備: 一個虛擬機器中的 CentOS 7 , Ubuntu 18.04 LTS ,或者 Debian 9 擴充套件
JDK 1.5、1.6和1.7區別
JDK1.5(JDK5.0) Java2標準版(Java2 Platform, Standard Edition, J2SE)1.5版本更新不同於以往,它帶來了很多里程碑式的革新,SUN將其綽號取名為“虎”。這一次的變革將是Java誕生以來從未有過的,它給我們帶來了耳目一新的感覺。下面我們就來欣賞一下其中
win7安裝兩個jdk,1.7和1.8,下載、安裝、配置環境變數,方便切換
之前用過1.6,後來換電腦後用的1.7,由於時代在發展,許多外掛、框架等新的功能需要jdk1.8才能使用,所以就想安裝1.8,不過1.7還不準備解除安裝,就考慮安裝多個jdk.先下載jdk1.8,建議去官網下載,需要oracle賬號,這個可以免費註冊我們選擇jdk1.8版本,
《Java核心技術(卷1)》筆記:第7章 異常、斷言和日誌
## 1. 異常 1. (P 280)異常處理需要考慮的問題: * 使用者輸入錯誤 * 裝置錯誤 * 物理限制 * 程式碼錯誤 2. (P 280)傳統的處理錯誤的方法是:返回一個特殊的**錯誤碼**,常見的是返回-1或者`null`引用 3. (P 280)在Java中,方法
Rancher 1.6發布:EBS支持、密文管理和CLI增強
docker 支持 rancher 管理 微服務 部署 Rancher v1.6現已全面發布!這是Rancher容器管理平臺的最新版本。盡管我們一如既往地建議您使用Rancher最新的穩定版本進行生產或關鍵任務的部署,然而此刻,我們還是迫不及待地想與你分享Rancher v1.6中的新
python教程1:Python基礎之數據類型和變量、字符串和編碼
mos 指向 character 文本編輯 字符 支持 isp michael 多個 視頻鏈接: 我是在Linux下玩python的,Linux下默認安裝python,直接打個pyhon3就好了,python大小寫敏感 我們來寫第一個簡單的pyt
如何在 CentOS 7 中安裝、配置和安全加固 FTP 服務
cte success fire lease 註意 tps tran sub linux 步驟 1:安裝 FTP 服務器 1、 安裝 vsftpd 服務器很直接,只要在終端運行下面的命令。 # yum install vsftpd 2、 安裝完成後,服務先是被禁用的,因