c99和c++11的差異之一
#include <stdio.h>
void main(){
printf("hello world.\n");
}
gcc hello.c -o hello -std=c99
編譯通過。
但通過如下編譯則失敗——
g++ hello.c -o hello -std=c++11
失敗信息為:
hello.c:3:11: error: ‘::main’ must return ‘int’
void main()
^
這是因為在c+11中,main必須為int類型,但卻可以不必有返回值;修改代碼為如下即可——
#include <stdio.h>
int main(){
printf("hello world.\n");
/*return 0; 可以不需要這行*/
}
c99和c++11的差異之一
相關推薦
c99和c++11的差異之一
修改 std c++11 error bsp err 必須 pri () #include <stdio.h> void main(){ printf("hello world.\n"); } gcc hello.c -o hello -std=c99 編譯
C++11之前和C++11之後的 vector 建構函式的區別
例子: #include <iostream> #include <vector> using namespace std; class A { public: A(const char* s = "1234") { cout << "ASDF"
Posix執行緒和C++11多執行緒學習
在C++11引進多執行緒之前,我們不得不使用POSIX pthreads,因此本文主要包括三部分: POSIX多執行緒實踐 C++11 多執行緒實踐 類成員函式作為執行緒函式的實現 一、POSIX多執行緒實踐 一個簡單執行緒的實現 建立一個執行緒,該執
關於C/C++中的NULL和C++11新引進的nullptr
C/C++使用NULL來表示空指標,它是一個巨集定義,其實質就是0,表示不指向任何記憶體地址的空指標。VC中的NULL定義在vcruntime.h中。#ifndef NULL #ifdef __
用BlockBoundQueue和c++11實現多執行緒生產者消費者問題
最近在讀到陳碩的《linux多執行緒服務端程式設計》這書時,發現了兩個特別好用的模板類 : BlockQueue和BlockBoundQueue,用來實現多執行緒中的生產者消費者問題是特別方便的。但是其原始碼中用到boost庫,所以在這裡我稍微修改下,實現如下。
AndroidStudio NDK支援C++ STL和C++11
在app/src/main/jni目錄下的Application.mk檔案新增下面兩行,如果沒有Application.mk就自行新增 APP_STL := stlport_static #STL APP_CPPFLAGS += -std=c++11 #C++11
【C/C++】C和C++11之enum列舉的使用細節
作者:李春港 出處:https://www.cnblogs.com/lcgbk/p/14101271.html [toc] # 一、前言 由於C++專案中用了相對比較多的列舉(enum),正常情況下,列舉變數都是佔用一個整形型別的大小,但是專案中列舉(enum)只需要使用到一個位元組的大小,因為是在嵌入式
C++11 圖說VS2013下的引用疊加規則和模板參數類型推導規則
反匯編 cto 構造 這不 gif 怎麽辦 由於 pla 覆蓋 背景: 最近在學習C++STL,出於偶然,在C++Reference上看到了vector下的emplace_back函數,不想由此引發了一系列的“探索”,於是就有了現在這篇博文。 前言:
C++11中lock_guard和unique_lock的區別
target san color member uri display each for clas c++11中有一個區域鎖lock_guard,還有第二個區域鎖unique_lock。 區域鎖lock_guard使用起來比較簡單,除了構造函數外沒有其他member fu
C++11 override 和 final 關鍵字
報錯 actions 函數重載 oid 操作 添加 error: 一個 而不是 C++11之前,一直沒有繼承控制關鍵字。禁用一個類的進一步衍生是可能的但也很棘手。為避免用戶在派生類中重載一個虛函數,你不得不向後考慮。 C++ 11添加了兩個繼承控制關鍵字:overrid
c++11 標準庫函數 std::move 和 完美轉發 std::forward
標準庫函數 這樣的 除了 值引用 sin 引入 語言 優先 ace c++11 標準庫函數 std::move 和 完美轉發 std::forward #define _CRT_SECURE_NO_WARNINGS #include <iostream>
【C++11】unoedered_map和map(部分轉載)
好的 hash 比較 綜合 per 百萬 一點 應該 .net 1.結論 新版的hash_map都是unordered_map了,這裏只說unordered_map和map. 運行效率:unordered_map最高,而map效率較低但提供了穩定效率和有序的序列。 占用內存
c++11 類默認函數的控制:"=default" 和 "=delete"函數 void fun() = default; void fun()=delete;
AI pos 析構函數 新特性 inline tor 負責 turn 隱式 轉自:lsgxeva#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #incl
C++11智能指針和引用
() auto log 導入 學習課程 ket pcl server ptr 最近在學習課程的時候發現一個很困惑的問題,上代碼 class DataHeader; class LoginResult:public DataHeader; typedef std::sha
C++11新特性——default函式和deleted函式
轉自:http://blog.jobbole.com/103669/ default函式 default函式作用於類的特殊成員函式,為其自動生成預設的函式定義體,提高程式碼的執行效率。 類的特殊成員函式: 預設建構函式 解構函式 複
常量表達式和constexpr(c++11)
常量表達式 常量表達式是指值不會改變且在編譯階段就能得到計算結果的表示式: const int max_files = 20; //是常量表達式 const int limit = max_file + 1; //是常量表達式 int staff_size = 27;
c++11 auto 和 decltype
一. auto簡介程式設計時候常常需要把表示式的值付給變數,需要在宣告變數的時候清楚的知道變數是什麼型別。然而做到這一點並非那麼容易(特別是模板中),有時候根本做不到。為了解決這個問題,C++11新標準就引入了auto型別說明符,用它就能讓編譯器替我們去分析表示式所屬的型別。和原來那些只對應某種特定的型別說明
C++11實現生產者和消費者
#include <iostream> #include <thread> #include <mutex> #include <deque> #include <vector> #include <condition
C++11併發學習之一:小試牛刀
1.與C++11多執行緒相關的標頭檔案 C++11 新標準中引入了四個標頭檔案來支援多執行緒程式設計,他們分別是<atomic> ,<thread>,<mutex>,<condition_variable>和<future>。 <at
C++11智慧指標和引用
最近在學習課程的時候發現一個很困惑的問題,上程式碼 class DataHeader; class LoginResult:public DataHeader; typedef std::shared_ptr<DataHeader> DataHeaerPtr; //原型 void addS