多線程使用malloc安全嗎 C 11中的constexpr到底怎么用。只知道const不懂constexpr?
C 11中的constexpr到底怎么用。只知道const不懂constexpr?Constexpr用于定義可在編譯時計算的常量表達式。1. 編譯器時間常數(shù)函數(shù),編譯器可以計算函數(shù)的值。例如,可以
C 11中的constexpr到底怎么用。只知道const不懂constexpr?
Constexpr用于定義可在編譯時計算的常量表達式。
1. 編譯器時間常數(shù)函數(shù),編譯器可以計算函數(shù)的值。例如,可以用constexpr函數(shù)更好地替換某些宏函數(shù)。
2. 編譯時常量數(shù)據,如一些在類和類模板中定義的靜態(tài)常量數(shù)據,過去是用static const來定義的,現(xiàn)在可以用constexpr來定義,這樣可以達到更好的效率和安全性。
c constexpr構造函數(shù)有什么作用?
將constexpr添加到構造函數(shù)時,構造函數(shù)只能為具有初始化列表的屬性賦值。如果函數(shù)體為空,則構造函數(shù)可用于其他constexpr
constexpr表示一個函數(shù)或表達式可在編譯時進行求值,并可用作常量,對于用constexpr構造函數(shù)創(chuàng)建的對象也是如此,它可用作常量
~,當代碼中多次調用具有相同參數(shù)的函數(shù)時,使用默認參數(shù)可以減少傳遞的參數(shù)數(shù)量并簡化代碼。第二,當您需要提供一個默認值時,比如窗口的大小和默認的黑色。第三,用默認參數(shù)在構造函數(shù)中減少類中的一些復制,當?shù)谝粋€參數(shù)是類引用時,它可以復制構造函數(shù)。第四,使用const和constexpr變量作為默認參數(shù)與具體實現(xiàn)有關。第五,在某些情況下,使用默認參數(shù)可以發(fā)揮與重載函數(shù)相同的作用
在c入門第五版中,只有c涉及11,因此不支持static const int n u下面的答案假設您的文章來自c入門第五版。
本段中的常量靜態(tài)數(shù)據成員是指同時添加constexpr和static關鍵字的數(shù)據成員。由于向其添加了constexpr,因此可以在類中定義初始值(通常,靜態(tài)成員變量不能在類中定義)。constexpr的特性決定了初始值可以在類中定義,因為constexpr限制它必須是常量表達式??梢栽诰幾g時用相應的文本值替換所有constexpr變量。
因此,由constexpr和static關鍵字修改的數(shù)據成員實際上并不存在,而是由值替換。我想可能是為了方便??赡蹸只替換相應范圍內的,所以它只替換類內的。因此,添加到類中的帶有constexpr和static關鍵字的變量實際上并不存在,因此如果需要在類外部使用常量靜態(tài)數(shù)據成員,還需要在類外部定義它