一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C和C++是一回事嗎

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:STM32嵌入式開(kāi)發(fā) ? 作者:STM32嵌入式開(kāi)發(fā) ? 2020-11-13 18:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C語(yǔ)言雖說(shuō)經(jīng)常和c++在一起被大家提起,但可千萬(wàn)不要以為它們是一個(gè)東西?,F(xiàn)在我們常用的C語(yǔ)言是C89標(biāo)準(zhǔn),C++是C++99標(biāo)準(zhǔn)的。C89就是在1989年制定的標(biāo)準(zhǔn)。本文在討論的時(shí)候使用的C語(yǔ)言標(biāo)準(zhǔn)是C89,C++標(biāo)準(zhǔn)是C++99。

我們來(lái)介紹C語(yǔ)言和C++中那些不同的地方。

函數(shù)默認(rèn)值

在C++中我們?cè)诙x或聲明一個(gè)函數(shù)的時(shí)候,有時(shí)會(huì)在形參中給它賦一個(gè)初始值作為不傳參數(shù)時(shí)候的缺省值,例如:

int FUN(int a = 10);

代表沒(méi)有傳參調(diào)用的時(shí)候,自動(dòng)給a賦一個(gè)10的初始值。然而這種操作在c89下是行不通的,在c語(yǔ)言下這么寫(xiě)就會(huì)報(bào)錯(cuò)。

我們都知道,系統(tǒng)在調(diào)用任何一個(gè)函數(shù)的時(shí)候都有函數(shù)棧幀的開(kāi)辟,如果函數(shù)有參數(shù)則需要壓入實(shí)參。平常在我們?nèi)藶榻o定實(shí)參的時(shí)候,是按照參數(shù)列表從右向左依次將參數(shù)通過(guò)以下指令傳入寄存器,再通過(guò)push指令壓入?,F(xiàn)在我們已經(jīng)給定了函數(shù)參數(shù)的默認(rèn)值,那么在壓實(shí)參的時(shí)候只需要一步push初始值即可,效率更高。

mov eax/ecx dword ptr[ebp-4] //假設(shè)是int數(shù)據(jù)

另外需要注意的是,賦初始值必須從參數(shù)列表的右邊開(kāi)始賦值,從左邊開(kāi)始賦值將會(huì)出錯(cuò):

intsum1(inta=10,intb);//錯(cuò)誤int sum2(int a,int b = 20); //正確

因?yàn)槿绻鹲um1的聲明是正確的,那么我們調(diào)用的時(shí)候怎么調(diào)用?sum1( ,20)?很可惜這樣屬于語(yǔ)法錯(cuò)誤,調(diào)用這么寫(xiě)既然不對(duì)那就當(dāng)然不能這樣賦初始值了。相反,sum2的調(diào)用:sum2(20);合情合理,沒(méi)有任何問(wèn)題。

實(shí)際在寫(xiě)工程的時(shí)候,我們都習(xí)慣將函數(shù)的聲明寫(xiě)在頭文件中而非本文件里,然后在不同的文件中寫(xiě)出它們的定義。那么這種情況可以賦初始值嗎?當(dāng)然可以,不論是定義還是聲明處,只要你遵守從右向左賦的規(guī)則就可以。甚至你還可以這樣給初始值:

int fun(int a ,int b = 10);int fun(int a = 20,int b);

眼尖的同學(xué)看見(jiàn)了下面的那行代碼大喊錯(cuò)誤,因?yàn)橄冉o左邊賦值了!

其實(shí)這樣聲明完全沒(méi)有問(wèn)題,兩句聲明是同一個(gè)函數(shù)(函數(shù)多次聲明沒(méi)有問(wèn)題),第一句已經(jīng)給b了一個(gè)初始值,運(yùn)行到第二句時(shí)已經(jīng)等價(jià)于int fun(int a = 20,int b = 10);了。但是注意,這兩句的順序不能反轉(zhuǎn),否則就是錯(cuò)誤的。

總結(jié):C89標(biāo)準(zhǔn)的C語(yǔ)言不支持函數(shù)默認(rèn)值,C++支持函數(shù)默認(rèn)值,且需要遵循從右向左賦初始值。

inline內(nèi)聯(lián)函數(shù)

說(shuō)到內(nèi)聯(lián)函數(shù)大家應(yīng)當(dāng)不陌生,它又是一個(gè)C89標(biāo)準(zhǔn)下C語(yǔ)言沒(méi)有的函數(shù)。它的具體做法和宏非常相似,也是在調(diào)用處直接將代碼展開(kāi),只不過(guò)宏它是在預(yù)編譯階段展開(kāi),而內(nèi)聯(lián)函數(shù)是在 編譯階段進(jìn)行處理的。同時(shí),宏作為預(yù)處理并不進(jìn)行類型檢查,而inline函數(shù)是要進(jìn)行類型檢查的,也就可以稱作“更安全的宏”。

內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別:內(nèi)聯(lián)函數(shù)沒(méi)有棧幀的開(kāi)辟回退,一般我們直接把內(nèi)聯(lián)函數(shù)寫(xiě)在頭文件中,include之后就可以使用,由于調(diào)用時(shí)直接代碼展開(kāi)所以我們根本不需要擔(dān)心什么重定義的問(wèn)題——它連符號(hào)都沒(méi)有生成當(dāng)然不會(huì)所謂重定義了。普通函數(shù)生成符號(hào),內(nèi)聯(lián)函數(shù)不會(huì)生成符號(hào)。

關(guān)于inline還需要注意的一點(diǎn)是,我們?cè)谑褂盟臅r(shí)候往往是用來(lái)替換函數(shù)體非常?。?~5行代碼)的函數(shù)的。這種情況下函數(shù)的堆棧開(kāi)銷相對(duì)函數(shù)體大小來(lái)說(shuō)就非常大了,這種情況使用內(nèi)聯(lián)函數(shù)可以大大提高效率。相反如果是一個(gè)需要很多代碼才能實(shí)現(xiàn)的函數(shù),則不適合使用。一是此時(shí)函數(shù)堆棧調(diào)用開(kāi)銷與函數(shù)體相比已經(jīng)是微不足道了,二是大量的代碼直接展開(kāi)的話會(huì)給調(diào)試帶來(lái)很大的不便。三是如果代碼體達(dá)到一個(gè)閾值,編譯器會(huì)將它變成普通函數(shù)。

同時(shí),遞歸函數(shù)不能聲明為inline函數(shù)。說(shuō)到底inline只是對(duì)編譯器的建議,最終能否成功也不一定。同時(shí),我們平常生成的都是debug版本,在這個(gè)版本下inline是不起作用的。只有生成release版時(shí)才會(huì)起作用。

總結(jié):C89沒(méi)有,在調(diào)用點(diǎn)直接展開(kāi),不生成符號(hào),沒(méi)有棧幀的開(kāi)辟回退,僅在Release版本下生效。一般寫(xiě)在頭文件中。

函數(shù)重載

C語(yǔ)言中產(chǎn)生函數(shù)符號(hào)的規(guī)則是根據(jù)名稱產(chǎn)生,這也就注定了c語(yǔ)言不存在函數(shù)重載的概念。而C++生成函數(shù)符號(hào)則考慮了函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)類型。需要注意的是函數(shù)的返回值并不能作為函數(shù)重載的依據(jù),也就是說(shuō)int sum和double sum這兩個(gè)函數(shù)是不能構(gòu)成重載的!

我們的函數(shù)重載也屬于多態(tài)的一種,這就是所謂的靜多態(tài)。

靜多態(tài):函數(shù)重載,函數(shù)模板

動(dòng)多態(tài)(運(yùn)行時(shí)的多態(tài)):繼承中的多態(tài)(虛函數(shù))。

使用重載的時(shí)候需要注意作作用域問(wèn)題:請(qǐng)看如下代碼。

#include using namespace std; bool compare(int a,int b){return a > b;} bool compare(double a,double b){return a > b;} int main(){//bool compare(int a,int b); compare(10,20);compare(10.5,20.5);return 0;}

我在全局作用域定義了兩個(gè)函數(shù),它們由于參數(shù)類型不同可以構(gòu)成重載,此時(shí)main函數(shù)中調(diào)用則可以正確的調(diào)用到各自的函數(shù)。

但是請(qǐng)看main函數(shù)中被注釋掉的一句代碼。如果我將它放出來(lái),則會(huì)提出警告:將double類型轉(zhuǎn)換成int類型可能會(huì)丟失數(shù)據(jù)。

這就意味著我們編譯器針對(duì)下面兩句調(diào)用都調(diào)用了參數(shù)類型int的compare。由此可見(jiàn),編譯器調(diào)用函數(shù)時(shí)優(yōu)先在局部作用域搜索,若搜索成功則全部按照該函數(shù)的標(biāo)準(zhǔn)調(diào)用。若未搜索到才在全局作用域進(jìn)行搜索。

總結(jié):C語(yǔ)言不存在函數(shù)重載,C++根據(jù)函數(shù)名參數(shù)個(gè)數(shù)參數(shù)類型判斷重載,屬于靜多態(tài),必須同一作用域下才叫重載。

const

這一部分非常重要。在我的另一篇博客“C語(yǔ)言的32個(gè)關(guān)鍵字”中對(duì)C語(yǔ)言中的const也有所講解。當(dāng)中提到了這么一個(gè)問(wèn)題:C語(yǔ)言中被const修飾的變量不是常量,叫做常變量或者只讀變量,這個(gè)常變量是無(wú)法當(dāng)作數(shù)組下標(biāo)的。然而在C++中const修飾的變量可以當(dāng)作數(shù)組下標(biāo)使用,成為了真正的常量。這就是C++對(duì)const的擴(kuò)展。

C語(yǔ)言中的const:被修飾后不能做左值,可以不初始化,但是之后沒(méi)有機(jī)會(huì)再初始化。不可以當(dāng)數(shù)組的下標(biāo),可以通過(guò)指針修改。簡(jiǎn)單來(lái)說(shuō),它和普通變量的區(qū)別只是不能做左值而已。其他地方都是一樣的。

C++中的const:真正的常量。定義的時(shí)候必須初始化,可以用作數(shù)組的下標(biāo)。const在C++中的編譯規(guī)則是替換(和宏很像),所以它被看作是真正的常量。也可以通過(guò)指針修改。需要注意的是,C++的指針有可能退化成C語(yǔ)言的指針。比如以下情況:

int b = 20;const int a = b;

這時(shí)候的a就只是一個(gè)普通的C語(yǔ)言的const常變量了,已經(jīng)無(wú)法當(dāng)數(shù)組的下標(biāo)了。(引用了一個(gè)編譯階段不確定的值)

const在生成符號(hào)時(shí),是local符號(hào)。即在本文件中才可見(jiàn)。如果非要在別的文件中使用它的話,在文件頭部聲明:extern cosnt int data = 10;這樣生成的符號(hào)就是global符號(hào)。

總結(jié):C中的const叫只讀變量,只是無(wú)法做左值的變量;C++中的const是真正的常量,但也有可能退化成c語(yǔ)言的常量,默認(rèn)生成local符號(hào)。

引用

說(shuō)到引用,我們第一反應(yīng)就是想到了他的兄弟:指針。引用從底層來(lái)說(shuō)和指針就是同一個(gè)東西,但是在編譯器中它的特性和指針完全不同。

int a = 10;int &b = a;int*p=&a;//b=20;//*p = 20;

首先定義一個(gè)變量a = 10,然后我們分別定義一個(gè)引用b以及一個(gè)指針p指向a。我們來(lái)轉(zhuǎn)到反匯編看看底層的實(shí)現(xiàn):

可以看到底層實(shí)現(xiàn)完全一致,取a的地址放入eax寄存器,再將eax中的值存入引用b/指針p的內(nèi)存中。至此我們可以說(shuō)(在底層)引用本質(zhì)就是一個(gè)指針。

了解了底層實(shí)現(xiàn),我們回到編譯器。我們看到對(duì)a的值的修改,指針p的做法是*p = 20;即進(jìn)行解引用后替換值。底層實(shí)現(xiàn):

再來(lái)看看引用修改:

我們看到修改a的值的方法也是一樣的,也是解引用。只是我們?cè)谡{(diào)用的時(shí)候有所不同:調(diào)用p時(shí)需要*p解引用,b則直接使用就可以。由此我們推斷出:引用在直接使用時(shí)是指針解引用。p直接使用則是它自己的地址。這樣我們也了解了,我們給引用開(kāi)辟的這塊內(nèi)存是根本訪問(wèn)不到的。如果直接用就直接解引用了。即使打印&b,輸出的也是a的地址。

在此附上將指針轉(zhuǎn)為引用的小技巧:int *p = &a,我們將 引用符號(hào)移到左邊 將 *替換即可:int &p = a。

接下來(lái)看看如何創(chuàng)建數(shù)組的引用:

int array[10] = {0};//定義一個(gè)數(shù)組

我們知道,array拿出來(lái)使用的話就是數(shù)組array的首元素地址。即是int *類型。

那么&array是什么意思呢?int **類型,用來(lái)指向array[0]地址的一個(gè)地址嗎?不要想當(dāng)然了,&array是整個(gè)數(shù)組類型。

那么要定義一個(gè)數(shù)組引用,按照上面的小訣竅,先來(lái)寫(xiě)寫(xiě)數(shù)組指針吧:

int (*q) [10] = &array;

將右側(cè)的&對(duì)左邊的*進(jìn)行覆蓋:

int (&q)[10] = array;

測(cè)試sizeof(q) = 10。我們成功創(chuàng)建了數(shù)組引用。

經(jīng)過(guò)上面的詳解 ,我們知道了引用其實(shí)就是取地址。那么我們都知道一個(gè)立即數(shù)是沒(méi)有地址的,即

int &b = 10;

這樣的代碼是無(wú)法通過(guò)編譯的。那如果你就是非要引用一個(gè)立即數(shù),其實(shí)也不是沒(méi)有辦法:

const int &b = 10;

即將這個(gè)立即數(shù)用const修飾一下,就可以了。為什么呢?

這時(shí)因?yàn)楸籧onst修飾的都會(huì)產(chǎn)生一個(gè)臨時(shí)量來(lái)保存這個(gè)數(shù)據(jù),自然就有地址可取了。

總結(jié):引用底層就是指針,使用時(shí)會(huì)直接解引用,可以配合const對(duì)一個(gè)立即數(shù)進(jìn)行引用。

malloc,free && new,delete

這個(gè)問(wèn)題很有意思,也是重點(diǎn)需要關(guān)注的問(wèn)題。malloc()和free()是C語(yǔ)言中動(dòng)態(tài)申請(qǐng)內(nèi)存和釋放內(nèi)存的標(biāo)準(zhǔn)庫(kù)中的函數(shù)。而new和delete是C++運(yùn)算符、關(guān)鍵字。new和delete底層其實(shí)還是調(diào)用了malloc和free。它們之間的區(qū)別有以下幾個(gè)方面:

①:malloc和free是函數(shù),new和delete是運(yùn)算符。

②:malloc在分配內(nèi)存前需要大小,new不需要。

例如:

int *p1 = (int *)malloc(sizeof(int));int *p2 = new int; int *p3 = new int(10);

malloc時(shí)需要指定大小,還需要類型轉(zhuǎn)換。new時(shí)不需要指定大小因?yàn)樗梢詮慕o出的類型判斷,并且還可以同時(shí)賦初始值。

③:malloc不安全,需要手動(dòng)類型轉(zhuǎn)換,new不需要類型轉(zhuǎn)換。

④:free只釋放空間,delete先調(diào)用析構(gòu)函數(shù)再釋放空間(如果需要)。與第⑤條對(duì)應(yīng),如果使用了復(fù)雜類型,先析構(gòu)再call operator delete回收內(nèi)存。

⑤:new是先調(diào)用構(gòu)造函數(shù)再申請(qǐng)空間(如果需要)。

與第④條對(duì)應(yīng),我們?cè)谡{(diào)用new的時(shí)候(例如int *p2 = new int;這句代碼 ),底層代碼的實(shí)現(xiàn)是:首先push 4字節(jié)(int類型的大?。?,隨后call operator new函數(shù)分配了內(nèi)存。由于我們這句代碼并未涉及到復(fù)雜類型(如類類型),所以也就沒(méi)有構(gòu)造函數(shù)的調(diào)用。如下是operator new的源代碼,也是new實(shí)現(xiàn)的重要函數(shù):

void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc){ // try to allocate size bytes void *p;while ((p = malloc(size)) == 0)if (_callnewh(size) == 0){ // report no memory _THROW_NCEE(_XSTD bad_alloc, );}return (p);}

我們可以看到,首先malloc(size)申請(qǐng)參數(shù)字節(jié)大小的內(nèi)存,如果失敗(malloc失敗返回0)則進(jìn)入判斷:如果_callnewh(size)也失敗的話,拋出bad_alloc異常。_callnewh()這個(gè)函數(shù)是在查看new handler是否可用,如果可用會(huì)釋放一部分內(nèi)存再返回到malloc處繼續(xù)申請(qǐng),如果new handler不可用就會(huì)拋出異常。

⑥:內(nèi)存不足(開(kāi)辟失?。r(shí)處理方式不同。

malloc失敗返回0,new失敗拋出bad_alloc異常。

⑦:new和malloc開(kāi)辟內(nèi)存的位置不同。

malloc開(kāi)辟在堆區(qū),new開(kāi)辟在自由存儲(chǔ)區(qū)域。

⑧:new可以調(diào)用malloc(),但malloc不能調(diào)用new。

new就是用malloc()實(shí)現(xiàn)的,new是C++獨(dú)有malloc當(dāng)然無(wú)法調(diào)用。

作用域

C語(yǔ)言中作用域只有兩個(gè):局部,全局。C++中則是有:局部作用域,類作用域,名字空間作用域三種。

所謂名字空間就是namespace,我們定義一個(gè)名字空間就是定義一個(gè)新作用域。訪問(wèn)時(shí)需要以如下方式訪問(wèn),以std為例:

std::cin<< "123" <

例如我們有一個(gè)名字空間叫Myname,其中有一個(gè)變量叫做data。如果我們希望在其他地方使用data的話,需要在文件頭聲明:using Myname::data;這樣一來(lái)data就使用的是Myname中的值了??墒沁@樣每個(gè)符號(hào)我們都得聲明豈不是累死?

我們只要using namespace Myname;就可以將其中所有符號(hào)導(dǎo)入了。這也就是我們經(jīng)??吹降膗sing namespace std;的意思啦。

責(zé)任編輯:xj

原文標(biāo)題:C和C++是同一個(gè)東西嗎

文章出處:【微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141714
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95246
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75302

原文標(biāo)題:C和C++是同一個(gè)東西嗎

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    主流的 MCU 開(kāi)發(fā)語(yǔ)言為什么是 C 而不是 C++

    在單片機(jī)的地界兒里,C語(yǔ)言穩(wěn)坐中軍帳,C++想分杯羹?難嘍。咱電子工程師天天跟那針尖大的內(nèi)存空間較勁,C++那些花里胡哨的玩意兒,在這兒真玩不轉(zhuǎn)。先說(shuō)內(nèi)存這道坎兒。您當(dāng)stm32f4的256kRAM
    的頭像 發(fā)表于 05-21 10:33 ?443次閱讀
    主流的 MCU 開(kāi)發(fā)語(yǔ)言為什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?

    今天帶你來(lái)看看防逆流是什么?光伏防逆流又是怎么一回事?

    、什么是光伏防逆流 分布式光伏發(fā)電系統(tǒng)中,發(fā)電量超本地負(fù)載耗電量時(shí),多余電能可能逆向流入電網(wǎng),此為 “逆流”。光伏防逆流即借助技術(shù)手段與設(shè)備,防止或限制這種逆流。安科瑞+武陳燕
    的頭像 發(fā)表于 05-14 16:40 ?643次閱讀
    今天帶你來(lái)看看防逆流是什么?光伏防逆流又是怎么<b class='flag-5'>一回事</b>?

    Spire.XLS for C++組件說(shuō)明

    Spire.XLS for C++款專業(yè)的 C++ Excel 組件,可以用在各種 C++ 框架和應(yīng)用程序中。Spire.XLS for C+
    的頭像 發(fā)表于 01-14 09:40 ?622次閱讀
    Spire.XLS for <b class='flag-5'>C++</b>組件說(shuō)明

    同樣是函數(shù),在CC++中有什么區(qū)別

    同樣是函數(shù),在 CC++ 中有什么區(qū)別? 第個(gè)返回值。 C語(yǔ)言的函數(shù)可以不寫(xiě)返回值類型,編譯器會(huì)默認(rèn)為返回 int。 但是 C++
    的頭像 發(fā)表于 11-29 10:25 ?909次閱讀

    C7000 C/C++優(yōu)化指南用戶手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《C7000 C/C++優(yōu)化指南用戶手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 11-09 15:00 ?0次下載
    <b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>優(yōu)化指南用戶手冊(cè)

    TMS320C6000優(yōu)化C/C++編譯器v8.3.x

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000優(yōu)化C/C++編譯器v8.3.x.pdf》資料免費(fèi)下載
    發(fā)表于 11-01 09:35 ?1次下載
    TMS320<b class='flag-5'>C</b>6000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器v8.3.x

    TMS320C28x優(yōu)化C/C++編譯器v22.6.0.LTS

    電子發(fā)燒友網(wǎng)站提供《TMS320C28x優(yōu)化C/C++編譯器v22.6.0.LTS.pdf》資料免費(fèi)下載
    發(fā)表于 10-31 10:10 ?0次下載
    TMS320<b class='flag-5'>C</b>28x優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器v22.6.0.LTS

    C語(yǔ)言和C++中結(jié)構(gòu)體的區(qū)別

    同樣是結(jié)構(gòu)體,看看在C語(yǔ)言和C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?770次閱讀

    C7000優(yōu)化C/C++編譯器

    電子發(fā)燒友網(wǎng)站提供《C7000優(yōu)化C/C++編譯器.pdf》資料免費(fèi)下載
    發(fā)表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器

    Laird Eccosorb吸波材料的應(yīng)用案例

    抑制Retimer芯片在22GHz的雜訊是一回事,準(zhǔn)確提供所需解決方案的理想特征參數(shù)又是另外一回事。閱讀下文,了解家全球網(wǎng)絡(luò)技術(shù)制造商如何在對(duì)比九種不同的仿真結(jié)果后,最終選擇Laird Eccosorb GDS(經(jīng)過(guò)萊爾德實(shí)驗(yàn)
    的頭像 發(fā)表于 10-24 09:55 ?1256次閱讀
    Laird Eccosorb吸波材料的應(yīng)用案例

    使用Tina ti仿真ths3201時(shí),發(fā)生源兩路輸入則輸出不對(duì)是怎么回事?

    使用Tina ti仿真ths3201時(shí),發(fā)生源兩路輸入則輸出不對(duì),單路輸入結(jié)果卻正確。另外,我下載該仿真模型時(shí),模型沒(méi)有更新,因?yàn)楦轮螅瑃hs3201無(wú)效,無(wú)法正常仿真。請(qǐng)問(wèn)這是怎么一回事呢?
    發(fā)表于 08-14 06:21

    塊板子上,摘取焊接了四次不同的比較器,比較器型號(hào)都是tlv3702,相同測(cè)試條件但結(jié)果卻不同,為什么?

    測(cè)試,在該板上摘取焊接了四個(gè)同型號(hào)比較器,四次測(cè)試結(jié)果偏差很大,且我自己排除了焊接問(wèn)題,求問(wèn)這是怎么一回事;個(gè)人猜測(cè)這幾個(gè)比較器的功耗不同,只有功耗極低的比較器才能達(dá)到電路的理論輸出,輸出電壓低的,功耗大,如果是我猜測(cè)的這個(gè)原因,那是不是我買(mǎi)的是假貨;如果不是,請(qǐng)問(wèn)有別的什么原因嗎?
    發(fā)表于 08-06 06:14

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都覺(jué)得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的優(yōu)化與整理,已經(jīng)是非常貼近開(kāi)發(fā)的使用習(xí)慣與推理方式。與OpenCV的Mat對(duì)象對(duì)接方式更是幾乎無(wú)縫對(duì)接,非常的方便好用。
    的頭像 發(fā)表于 07-26 09:20 ?1569次閱讀

    C++語(yǔ)言基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《C++語(yǔ)言基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?10次下載

    C++中實(shí)現(xiàn)類似instanceof的方法

    C++有多態(tài)與繼承,但是很多人開(kāi)始學(xué)習(xí)C++,有時(shí)候會(huì)面臨個(gè)常見(jiàn)問(wèn)題,就是如何向下轉(zhuǎn)型,特別是不知道具體類型的時(shí)候,這個(gè)時(shí)候就希望C++ 可以向Java或者Python中有insta
    的頭像 發(fā)表于 07-18 10:16 ?945次閱讀
    <b class='flag-5'>C++</b>中實(shí)現(xiàn)類似instanceof的方法