1. 程式人生 > >C++字串常量定義方式選擇

C++字串常量定義方式選擇

#define HELLO "Hello World" 
const char *HELLO2 = "Howdy";

What do you prefer? If possible show some drawbacks of eithermethod.

There's one more (at least) road to Rome:

staticconstchar HELLO3[]="Howdy";

(static —optional — is to prevent it from conflicting with other files). I'dprefer this one over constchar*

, because then you'll be able touse sizeof(HELLO3) andtherefore you don't have to postpone till runtime what you can doat compile time.

The define has an advantage of compile-time concatenation, though(think HELLO", World!") and you can sizeof(HELLO) aswell.

But then you can also prefer constchar*

 and use it across multiple files,which would save you a morsel of memory.

In short — it depends.

相關推薦

C++字串常量定義方式選擇

#define HELLO "Hello World" const char *HELLO2 = "Howdy"; What do you prefer? If possible show some drawbacks of eithermethod. There's one more (

c++公共常量定義方式的比較

我們常在公共標頭檔案中定義一些常量,定義常量方法如下: 方法1 commdef.h(公共標頭檔案): const int constname = XXX; 在使用該變數的地方加入 #include "commdef.h" 方法2 commdef.h(公共標頭檔案): ext

c++ 字串常量

字串常量,之所以稱之為常量,因為它可一看作是一個沒有命名的字串且為常量,存放在靜態資料區。 這裡說的靜態資料區,是相對於堆、棧等動態資料區而言的。 靜態資料區存放的是全域性變數和靜態變數,從這一點上來說,字串常量又可以稱之為一個無名的靜態變數, 因為"Hello world

C字串常量陣列,ACC_MODE詳解

#define ACC_MODE(x) ("/000/004/002/006"[(x)&O_ACCMODE]) #define O_ACCMODE 0003 #include<stdio.h> void main() { for(int i=000

C#字串定義和使用

C#中的字元char和字串string幾乎說是差不多,但是有一點點的區別, string(字元,次數)//這個是該字串重複的次數,例如:s=new string('a',1000);//就是重複1000次 例如:char[] ch = new char[] { 'F','o

常量的三種定義方式和static在c語言中的三種修飾

c語言的常量在執行期間為固定值,在定義後無法被修改常量可以是任何的資料基本型別,可以為整形,浮點常量,字元和字串常量1,使用const關鍵字2, 使用巨集定義3,使用列舉常量   列舉: 1 #include<stdio.h> 2 int main(){ 3 e

C語言:定義字串的幾種方式

#include <stdio.h> #include <stdlib.h> int main() { //定義字串的幾種方式 //字串和字元陣列的區別:最後一位是否是空字元 char names1[] = {'

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

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

C語言中字串的幾種定義方式和有沒有’\0‘

( 主要解決 什麼時候是 “abcd\0” 什麼時候是 “abcd” 的問題 ) 幾種常用方式: 1.char* str = “abcd”; 2.char str[] = { “abcd” }; 3.char str[] = { ‘a’, ‘b’, ‘c

C++ 類的兩種定義方式

命名 c++ ech += esp set with aced spa 類內定義 class Teacher { private: string _name; int _age; public: Teacher() { printf("create teche

c語言中宏定義常量定義的區別

沒有 int 符號表 cnblogs 格式 nbsp 參數 不同之處 區別   他們有共同的好處就是“一改全改,避免輸入錯誤”哪兩者有不同之處嗎?有的。   主要區別就在於,宏定義是在編譯之前進行的,而const是在編譯階段處理的 宏定義不占用內存單元而const定義的常量

字串定義方式

三種定義方式: (1).單引號 (2).雙引號 (3).定界符 <<< //定界符一般大寫 單引號和雙引號的區別: 單引號是在沒有變量出現時,單引號和雙引號沒有什麼區別,有自變數之後有區別 花括號:分隔開了

python中的字串常量,是否支援通過下標的方式賦值

說明:   今天在看python,通過下標獲取字串常量的字元,在想是否可以通過下標的方式賦值。 操作: 1.對字串下標賦值 >>> text='python' >>> text[2] = 'j' Traceback (most recent call la

C語言變數定義與微控制器資料儲存方式

說明:文章來源 EDN電子技術設計:嵌入式程式開發需要知道的儲存器知識 MCU 中常使用的儲存器型別有:FLASH、RAM、ROM(包括EEPROM) 在軟體角度來看,程式和資料的儲存分為以下幾個部分 程式碼段和常量段都可以用於儲存常量資料,其主要區

字串三種定義方式

字串的三種定義方式為單引號' '  雙引號 " "  和定界符<<< 單引號雙引號 在一般情況下,用單引號或雙引號都可以 <?php header('content-type:text/html;charset=utf-8'); echo '

常量的兩種定義方式比較

符號常量 #define Pi 3.1415926f; 常值變數 const float pi 3.1415926f; 第一種方式:巨集定義,是將Pi定義成一種符號,此時Pi只是3.1415926的別名,在編譯期間用3.1415926去取代Pi的值。 1.define是巨集定義,程式在預處

C#GDI+自定義繪製曲線圖表控制元件DataChart 簡單實現 C#GDI+ 繪製線段(實線或虛線)、矩形、字串、圓、橢圓

C#GDI+自定義繪製曲線圖表控制元件DataChart 這裡只說明在計算刻度和曲線繪製的時候 只提供思路,只是做了下簡單的計算,不喜勿噴 還望見諒,高手直接飄過吧。這個要做好,還是需要研究研究演算法的,比如刻度隨著控制元件的大小發生改變的時候計算不同的值,根據刻度範圍來計算刻度以及刻度值等,這裡沒有研究,

C字串常量

當一個字串常量出現在表示式中時,它的值是個指標常量。編譯器把這些指定字元的一份拷貝儲存在記憶體的某個位置,並存儲一個指向第一個字元的指標。但是,當陣列名用於表示式中時,它們的值也是個指標常量。我們可以對它們進行下標引用、間接訪問以及指標運算。 這些操作對於字串常量是不是也有意義呢? 看看下面這個表示式是什麼意

C 】關於相鄰字串常量自動合併的標準(新舊標準)(新舊風格)(陷阱)

如果一個字串太長了,我們需要把它分行來寫,舊式風格是這樣來做的: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 printf( "I love yo

JAVA字串的兩種定義方式的區別

關於JAVA中兩種字串定義方式的區別 第一次寫,就當複習總結一下,希望能幫到需要的人吧= = 我們知道在JAVA中,對於字串的例項化方式有兩種: 直接賦值:String str = “Hello World”; 構造方法例項化:String str = new