導航:首頁 > 編程語言 > cc混合編程

cc混合編程

發布時間:2022-08-22 23:26:38

A. matlab中的anova1函數在用C#混合編程時出錯

我運行了一下沒有問題啊,不管是輸入單個數字還是向量,都是完美運行的。
既然都寫了GUI界面了,說明你對matlab也是比較熟悉的。
但是防止萬一還是說一下:sysl(n)函數要存成sysl.m文件並且和你第一個函數在同一個文件夾里。

另外如果已經是上面提的那樣。那請你把matlab返回的錯誤信息補充一下}

B. C/C++發展小問題

個人認為這是一個很好的文字,說的很清楚:

C是一種結構化語言,如譚父說:「它側重於演算法和數據結構。 C程序設計的首要考慮的是怎麼一個過程,來獲得輸出輸入(或環境條件)運算處理(或實現過程(事務)控制),而對於C + +,首要考慮的是如何構建對象模型中,因此這種模式是能夠符合相應的問題域,這樣你就可以通過對象的狀態信息輸出或實施過程式控制制(交易)。

所以C和C + +是最大的區別在於他們的思維來解決問題的方式是不一樣的。究其原因,是C + +比C更先進,因為「的設計理念已經被集成到了C + +」,在C中,演算法語言本身是更概念化。這是不是C並不重要,錯!演算法的基礎程序設計,良好的設計,沒有一個很好的演算法,同樣不能。此外,「C加上好的設計」也可以寫一個非常好的事情。

語言本身,C是C + +的一個子集,那麼什麼樣的一個子集?從上面可以看出,CC + +,實現了過程式控制制等相關功能,而在C + +中C(我稱它為「C +」),相對於原來的C已經加強,重,內聯函數,異常處理,所以項目的引進,C + +是面向對象的設計來擴展其內容,如類,繼承,虛函數,模板和容器類等。

進一步提高一點,在C + +的數據包,輸入的東西是什麼新東西,如:選擇對象的粒度,界面設計對象和繼承,需要考慮結合使用繼承等其他問題。

所以相對於在C,C + +包含了更豐富的「設計」的概念,但C是一個C + +的子集,自洽,而且還具有強大的功能,還值得研究。

一些學習建議:

1。基本概念是非常重要的。無論是學習C,或了解C + +的基本概念是第一個,它是比較困難的,但只有在掌握基本概念,才能從總體上把握背景下,居高臨下。

2。 C是C + +,是比較容易理解的,其基本理念和設計方法,初學者可以從它開始的一個子集。

3。如果你想學習C + +,最好不要推薦適合初學者使用,如VC,BCB平台編寫程序,自動代碼生成,豐富多彩的界面,可以讓你知道該怎麼做。最好先找到一個開放的空間,從點滴做起(UNIX,DOS),寫了幾個大點的程序,輪數,然後VC,BCB下看,你會很容易。在我看來,對學習C / C + +是成為VC,BCB高手的唯一途徑。

4。做不是妄想崩潰,你必須有一個位元組,有點拉,揣摩每一個問題。

5。幾本書:

機械工業出版社的「計算機科學系列」從C到C + +面向對象的設計,隨手可得,都TMD是經典中的經典,價格是公平的,非圓頂欺負。

有幾本書,譚父的書都很好,就是太多的錯誤。清華大學周的英語強烈推薦「現代軟體工程」(上,中,下),它是我見過一些好書,精華中的精華,點對點,薄的材料,至少它是國家降龍十八掌級的東西。

如果人們仍然希望學習C / C + +,然後有一些小問題,我很高興回答,但我想學習C / C + +並不重要,重要的是如何行使你的想法。不要找一些混淆的問題,甚至自己做。

我認為,雖然「譚浩強」同志詐騙的犯罪嫌疑人(我有一個幾乎相同的英文書籍),但他把底漆進入中國,所以很多程序員理解C語言,我認為他的功勞也不可磨滅的這本書中的所有例子可用於思考的基石,他的節目給大家做的練習是非常有幫助的,我認為這是值得一買的。例子來思考課後編程很有幫助,你不要小看一個簡單的例子,它們是你通往成功的道路。

當你能基本掌握了前面的例子在這本書中,你會發現他們的程序的一些例子看到的。開始讀,但如果他們努力工作是沒有問題的,當你已經看到了一些很好的例子,你會突然看到了光明,(讀了很多的例子程序,是學習C / C + +快捷鍵)你會發現,你的水平已經顯著提高。看例子越多,你在Windows / DOS了解更多。更好看一些有關系統的知識的書籍,他將不得不在你的程序非常有用。

這是我學習C / C + +的經驗,我希望我沒有害怕,想繼續學習C / C + +的朋友有一定的幫助。恐怕有些同志說我破壞中國的軟體人才發展。

在最後我祝願所有堅持學習C / C + +的朋友成功!也感謝閱讀我的文章的同志。

想學習C + +,C也不能非學校! ! !

今天我這么肯定了這里的言論雖不是新手落入錯誤的語言越多,越好,這個話題是不是很嚴格,但我必須說幾句講,對於C平反! !

C + +和C有什麼區別會做什麼呢?我們現在一步步來分析

一,階級,階層,我並沒有說有什麼不妥,但對於初學者來說,它是一個負擔。類包允許初學者程序產生厭倦,不適和麻煩。

二,引用,引用在C + +最趾高氣揚的事情,最好是不要盡可能地使用它,我只是從來沒有使用引用,除非萬不得已。引用更容易為初學者感到困惑,不知道這是引述,這是變數。

三,函數重載,函數重載初學者學習似乎是沒有傷害,但是,這使得C語言初學者潛意識變數類型產生稀釋的重要性,記得C語言是最敏感的變數類型,類型在C語言中的變數重要性是不言而喻的。

四,流運營商,同樣的道理,所以變數類型的重要性產生淡化,況且,CIN這東西有點不方便,可以讓初學者有時會產生奇怪的結果。

五,操作符重載,一個典型的先進應用,初學者可能並不需要所有這些東西會令他們感到,C + +的難,門檻高,不能讀......... ....

六,繼承,虛函數,一個典型的模仿四不象,這狗屎看起來深奧的東西,除了低..................實用價值。我怎麼可能把一個指針到另一個類類型,但不同類型的類的繼承關系是實現動態綁定,暈............

..................一些東西,我不會加以評論,如:新建,刪除運營商,等等............

7個錯誤:問題和答案格式:

Q:C + +面向對象和C是面向過程,面向?

答:第二對,錯的第一個問題,C + +不完全的面向對象的技術,恐怕只對Java才算得上真正的面向對象的語言。

問:C + +實現的C函數不能做?

答:至少我還沒有發現......

問:學習C語言,學習C + +有障礙嗎?如程序設計......

答:至少我還沒有看到有這種症狀。

問:學習C語言,學習C + +你必須重新開始嗎?

答:不,C + +下可以實現所有的C語言函數。

問:我完成學校C將肯定需要學習C + +編程?

答:絕對沒有必要的。

問:C + +比C好?

答:更一致的軟體工程

問:成品學校學習C到C + +是不是很容易嗎?

答:這取決於你所學到的是不是真的完成了C語言,我學會了從C到C + +卧床時間的前一個星期讀兩本書,然後大徹大悟。然後來這里發布一些狗屁文章。

最近看到很多人在網上學習方法,我堅決不同意。很多人想一口吃個胖子,想學習學習最新的,因為如果沒有人願意去學習那些老的,舊的編程語言?但是,你可以學習理解呢?不學習TC2。 0早期優秀的編程語言,你可以了解在VC6。 0?如果你真的可以,我寧願做你的弟子!奇怪了,誰不明白最基本的語言的人,如何理解那些人可能最新的編程語言?我學到現在,三年的編程。性能不是太多,只有一台電腦和高程證書四卡,但我覺得我學習VC,你不明白有很多。沒有人教我要靠自己的,其中包括所有級別,我總是依靠自己,我從來沒有報班。學習的VC超過六個月,我想我基本上已經開始,但依然有很多的困惑。剛開始學習VC,正面臨著一個項目,我真的很喜歡在一般情況下,觸摸四個恐慌,毫無章法,最後幾乎勉強算是一個傻瓜。 VC去學校學習其他先進的Windows編程,我覺得它是很容易的,畢竟,在WINDOWS裡面的東西很多,可以直接調用由VC,第一件事情,你可以有WINDOWS有了新的認識,你們去學習其他語言不能簡單嗎?

我的感覺是面向過程和面向對象的,其實非常重要的,在VC仍然會需要的過程中,很多事情都是相互關聯的,也沒有面向過程思考,如何編程成為可能?更值得推薦的Windows編程的書,但大多數都是比較老的書呦!我仍然記得那天TC編程很難,但我仍然懷念當年的勞動付出,畢竟我得到了我想要得到的一切 - 編程思想。我認為,一個良好的編程思路,比你一定學習好更重要的一種計算機語言。要形成自己的編程風格。在你的心目中,一個好的編程思想一旦形成,什麼樣的語言將是很容易學的,因為在這個時候,你不會是簡單易學,但驗證!

參考文獻: http://weichy.blogchina.com/2962575.html C語言是結構化和模塊化的語言,它是面向過程的。在處理較小的程序,採用C語言的程序員比得心應手。但是,當問題是更復雜的,大規模的計劃,結構化程序設計方法將顯示其不足之處。 C程序設計者必須仔細設計過程中的每一個細節,准確地考慮程序運行時發生的每一刻,例如,每個變數的變化,應執行的價值如何,當輸入在屏幕上應該出口等。這需要程序員是比較高的,如果面臨著一個復雜的問題,程序員往往感到力不從心。最初提出的結構化程序設計方法的目的是解決軟體設計危機,但這一目標尚未完全實現。為了解決軟體設計的危機,在20世紀80年代,面向對象編程(面向對象編程),在這種情況下,C + +應運而生。

C + +完全兼容C C.它也可用於結構化編程的面向對象編程的一個超集,所以它是一個功能強大的混合編程語言。

增強主要表現在兩個方面:

1在原有的面向過程的機制,基於C語言的功能做了很多的擴展。
2增加了面向對象機制。

C. CC程序員實用大全怎麼樣

譯者序 第一章 C語言入門 1 編程簡介 2 創建ASCII碼源文件 3 編譯C程序 4 語法錯誤 5 典型的C程序結構 6 往程序里添加語句 7 在新的一行上顯示輸出結果 8 C語言區分大小寫字母 9 邏輯錯誤BUG 10 程序開發過程 11 文件類型 12 進一步了解連接器 13 頭文件 14 幫助編譯器查找頭文件 15 加速編譯 16 注釋程序 17 提高程序的可閱讀性 18 注意編譯器警告信息 19 控制編譯器警告 20 用注釋屏蔽警告 21 名字的重要性 22 分號的作用 23 變數 24 給變數賦值 25 變數類型 26 定義同一類型的多個變數 27 定義變數時加上注釋 28 給變數賦初值 29 在定義時初始化多個變數 30 使用有意義的變數名 31 C關鍵字 32 整型變數 33 字元型變數 34 浮點型變數 35 雙精度型變數 36 給浮點型變數賦值 37 類型標識符 38 無符號類型標識符 39 LONG長類型標識符 40 聯合使用無符號和長類型標識符 41 使用大數值 42 寄存器類型標識符 43 短SHORT類型標識符 44 從類型申明中去掉INT 45 有符號類型示識符 46 多賦值運算符 47 把變數的值賦給另一種類型的變數 48 創建用戶自己的類型 49 賦給十六進制或八進制值 50 溢出 51 精確度 52 賦值為引號或其他字元 53 PRINTF入門 54 使用PRINTF顯示整型數值 55 列印八進制或十六進制整數 56 用PRINTF顯示無符號整型數值 57 用PRINTF顯示長整型數值 58 用PRINTF顯示浮點型數值 59 用PRINTF顯示字元型數值 60 用指數格式顯示浮點數 61 顯示浮點數 62 用PRINTF顯示字元串 63 用PRINTF顯示指針地址 64 在數值前添加正號和負號 65 用PRINTF格式化整數值 66 0填充整數輸出 67 在八進制和十六進制數前顯示前綴 68 用PRINTF格式化浮點數 69 格式化指數輸出 70 左對齊PRINTF的輸出 71 聯合使用格式符 72 字元串的換行 73 顯示NEAR和FAR字元 74 使用PRINTF的轉義字元 75 判斷PRINTF已顯示的字元數目 76 使用PRINTF的返回值 77 使用ANSI設備驅動器 78 用ANSI驅動器清除屏幕顯示 79 用ANSI驅動器顯示屏幕顏色 80 用ANSI驅動器定位游標 81 在C中作基本的數學運算 82 模運算(取余運算) 83 運算符的優先順序和結合性 84 強制操作符運算順序 85 C的自增運算符 86 C的自減運算符 87 按位或運算 88 按位與運算 89 按位異或運算 90 「取反」運算 91 對變數的值進行運算 92 C的條件運算符 93 C的長度SIZEOF運算符 94 移位運算 95 位循環運算 96 條件運算符 97 循環控制 98 C如何表示真TRUE和假FALSE 99 用IF判斷條件 100 簡單語句和復雜語句 101 判斷是否相等 102 關系判斷 103 用邏輯與判斷兩個條件 104 用邏輯或判斷兩個條件 105 邏輯非運算 106 將條件結果賦值給變數 107 在復合語句中定義變數 108 使用縮進來提高程序的可讀性 109 使用擴展CTRL+BREAK檢查 110 判斷浮點數 111 永遠循環下去 112 賦值判斷 113 IF-IF-ELSE語句 114 按規定次數執行語句 115 FOR語句的有些部分是可選擇的 116 在FOR語句中賦值 117 控制FOR循環的增值 118 在FOR循環中使用字元型和浮點型數值 119 空循環 120 無窮循環 121 在FOR循環中使用逗號運算符 122 不要在FOR循環中改變控制變數的值 123 用WHILE循環重復執行一條或多條語句 124 WHILE循環的組成部分 125 使用DO重復執行一條或多條語句 126 C的CONTINUE語句 127 使用C的BREAK語句來結束循環 128 GOTO語句分支 129 判斷多個條件 130 在SWITCH中使用BREAK 131 使用SWITCH語句的DEFAULT CASE 第二章 宏與常量 132 在程序中定義常量 133 宏與常量擴展 134 給常量和宏命名 135 使用-FILE-預處理器常量 136 使用-LINE-預處理器常量 137 改變預處理器的行計數 138 生成無條件預處理器錯誤 139 其他預處理器常量 140 記錄預處理器的日期和時間 141 判斷是否進行ANSIC編譯 142 判斷是C++還是C 143 取消宏或常量 144 比較宏與函數 145 編譯器PRAGMAS 146 預定義值和宏 147 創建用戶自己的頭文件 148 使用#INCLUDE<FILENAME.H>或#INCLUDE「FILENAME.H」 149 判斷符號是否被定義 150 進行IF-ELSE預處理 151 更強大的預處理器條件判斷 152 實現IF-ELSE和ELSE-IF預處理 153 定義需要多行的宏和常量 154 創建自定義宏 155 在宏定義中不要放置分號 156 創建MIN和MAX宏 157 創建SQUARE CUBE宏 158 注意宏定義中的空格 159 如何使用括弧 160 宏是沒有類型的 第三章 字元串 161 C字元串的形象化 162 編譯器是如何表示字元串的 163 C是如何存儲字元串的 164 『A』是如何區別於『A』的 165 在字元串常量內表示引號 166 判斷字元串的長度 167 使用STRLEN函數 168 將一個字元串的字元復制到另一個字元串中 169 將一個串的內容追加到另一個串上 170 給字元串追加N個字元 171 把一個字元串轉移到另一個字元串 172 不要越過字元串的界限 173 判斷兩個字元串是否相同 174 比較字元串時忽略大小寫 175 將字元串轉換成大寫或小寫 176 獲取字元串中第一次出現的某個字元 177 返回索引到串的首次出現 178 搜索字元在字元串中的末次出現 179 返回指向字元中末次出現的索引 180 使用FAR字元串 181 為FAR字元串編寫字元串函數 182 計算字元串的內容反轉 183 將字元串的內容反轉 184 將某特定字元賦給整個字元串 185 比較兩個字元串 186 比較兩個字元中的前N個字元 187 不考慮大小寫比較字元串 188 將字元串轉換成數字 189 復制字元串的內容 190 從給定字元序列中查找字元的首次出現 191 在字元串中查找子字元串 192 計運算元字元串出現的次數 193 給子字元串獲取索引 194 獲取子字元串的最右端出現 195 不使用%2格式標識符顯示字元串 196 從字元串中刪除子字元串 197 用另一個子字元串代替子字元串 198 轉換數值的ASCII碼形式 199 判斷字元是否為字母數字 200 字元是否為字母 201 判斷字元是否包含ASCII值 202 判斷字元是否為控制符 203 判斷字元是否為數字 204 判斷字元是否為圖形字元 205 判斷字元是大寫還是小寫 206 判斷字元是否可列印 207 判斷字元是否為標點符號 208 判斷字元是否包含空白符 209 判斷字元是否為十六進制值 210 將字元轉換成大寫形式 211 將字元轉換成小寫形式 212 使用ASCII字元 213 將輸出格式寫進字元串變數 214 從字元串中讀輸入 215 標志字元串以節省空間 216 初始化字元串 第四章 函數 217 函數 218 在函數中使用變數 219 把MAIN當作函數 220 參數簡介 221 使用多參數 222 老式C程序中的參數申明 223 函數返回值 224 RETURN語句 225 函數原型 226 運行時程序庫 227 形參和實參 228 解決名稱沖突 229 返回類型為非INT型的函數 230 局部變數 231 函數如何使用堆棧 232 函數的開銷 233 C如何存儲局部變數 234 申明全局變數 235 避免使用全局變數 236 解決全局和局部變數的名稱沖突 237 更好地定義全局變數的有效范圍 238 傳值調用 239 使用傳值調用防止參數值變化 240 傳址調用 241 獲取地址 242 使用變數的地址 243 改變參數的值 244 只改變指定參數 245 使用堆棧進行傳址調用 246 記住函數變數的值 247 C是如何初始化靜態變數的 248 使用PASCAL調用順序 249 PASCAL關鍵字的影響 250 混合編程示例 251 CDECL關鍵字 252 遞歸函數 253 遞歸階乘函數 254 另一個遞歸的例子 255 進一步理解遞歸 256 直接遞歸與間接遞歸 257 判斷是否要使用遞歸 258 為什麼遞歸函數慢 259 如何消除遞歸 260 將字元串傳遞給函數 261 傳遞指定的數組元素 262 形式參數中的CONST 263 使用CONST不會阻止參數值的修改 264 無界字元串的申明 265 指針的使用與字元串的申明 266 C是如何使用堆棧處理字元串參數的 267 外部變數 268 應用外部變數 269 外部靜態變數 270 VOLATILE關鍵字 271 調用結構和基指針 272 調用匯編語言函數 273 從匯編語言函數中返回值 274 沒有返回值的函數 275 不使用參數的函數 276 AUTO關鍵字 277 范圍 278 范圍的分類 279 名稱空間和標識符 280 標識符的可見性 281 DURATION 282 支持參數個數可變的函數 283 支持個數可變的參數 284 VA-START、VA-ARG和VA-END是如何工作的 285 創建支持多參數多類型的函數 第五章 鍵盤操作 286 從鍵盤讀入字元 287 顯示字元輸出 288 緩沖輸入 289 將鍵盤輸入賦組合字元串 290 聯合使用GETCHAR和PUTCHA 291 記住GETCHAR和PUTCHAR都是宏 292 使用直接I/O讀入字元 293 不顯示字元的直接鍵盤輸入 294 知道何時使用『\R』和『\N』 295 直接輸出 296 將按鍵放回鍵盤緩存 297 使用CPPINTF快速格式化輸出 298 快速格式化鍵盤輸入 299 寫字元串 300 使用直接I/O實現更快的字元串輸出 301 從鍵盤讀入字元串 302 以更快的速度從鍵盤輸入字元串 303 以彩色顯示輸出 304 清除屏幕顯示 305 刪除當前行到行尾的內容 306 刪除屏幕上的當前行 307 定位游標進行屏幕輸出 308 判斷行與列的位置 309 在屏幕上插入空行 310 將屏幕上的文本拷貝到緩沖區 311 將緩沖區中的文本拷貝到屏幕的指定位置 312 判斷文本模式設置 313 控制屏幕顏色 314 指定背景色 315 使用TEXTCOLOR設置前景色 316 使用TEXTBACKGROUND設置背景色 317 控制文本的明暗度 318 決定當前文本模式 319 在屏幕上移動文本 320 定義文本窗口 第六章 數學 321 使用整型表達式的絕對值 322 使用ARCCOSINE反餘弦 323 使用ARCSINE反正弦 324 使用ARCTANGENT反正切 325 求復數的絕對值 326 對浮點值進位舍入 327 使用角的餘弦 328 使用角的雙曲餘弦 329 使用角的正弦 330 使用角的雙曲正弦 331 使用角的正切 332 使用角的雙曲正切 333 整數相除 334 使用指數 335 使用浮點型表達式的絕對值 336 使用浮點余數 337 使用浮點值的尾數和指數 338 計算X*2E的結果 339 計算自然對數 340 計算LOG10X的值 341 判斷最大值與最小值 342 把浮點值分解成整數和小數部分 343 計算Xn的結果 344 計算1010的結果 345 生成隨機數 346 將隨機值映射到指定范圍 347 給隨機數生成器賦初值 348 計算數值的平方根 349 創建定製數學錯誤處理程序 第七章 文件、目錄和磁碟 350 判斷當前盤驅動器 351 選擇當前驅動器 352 判斷可用的盤空間 353 當心DBLSPACE 354 讀入文件分配表FAT信息 355 磁碟ID 356 絕對扇區讀寫操作 357 進行BIOS磁碟I/O 358 測試軟碟機是否准備好 359 應用FOPEN打開文件 360 FILE結構 361 關閉一個打開的文件 362 每次讀/寫文件信息的一個字元 363 文件指針的位置指針 364 判斷當前文件位置 365 文件流 366 文件翻譯 367 CONFIG.SYS文件的FILES=條目 368 使用低級和高級文件I/O 369 文件句柄FILE HANDLES 370 進程文件表PROCESS FILE TABLE 371 進程文件表入口 372 系統文件表 373 顯示系統文件表 374 從流指針中導出文件句柄 375 進行格式化文件輸出 376 重命名文件 377 刪除文件 378 判斷程序如何訪問文件 379 設置文件的訪問模式 380 深入掌握文件屬性 381 檢測文件流錯誤 382 判斷文件的長度 383 刷新I/O流 384 一次關閉所有被打開的文件 385 獲取文件流的文件句柄 386 使用P-TMPDIR創建臨時文件名 387 使用TMP或TEMP創建臨時文件名 388 創建真正的臨時文件 389 刪除臨時文件 390 為文件搜索命令路徑 391 為文件搜索環境入口的子目錄 392 打開TEMP目錄中的文件 393 最小化文件I/O操作 394 在目錄名中使用反斜杠 395 改變當前目錄 396 創建目錄 397 刪除目錄 398 刪除目錄樹 399 建立完全路徑名 400 分解目錄路徑 401 建立路徑名 402 使用低級函數打開和關閉文件 403 創建文件 404 進行低級讀寫操作 405 判斷文件是否結束 406 應用低級文件例行程序 407 為文件句柄翻譯指定模式 408 打開LSEEK定位文件指針 409 打開多於20個的文件 410 使用DOS文件服務 411 獲取文件的日期和時間標記 412 利用位域獲取文件的日期與時間 413 設置文件的日期與時間標記 414 把文件日期和時間設置成當前日期和時間 415 每次讀寫一個字 416 改變文件的長度 417 控制文件打開操作的讀寫模式 418 將緩沖區賦給文件 419 分配文件緩沖區 420 利用MKTEMP創建唯一文件名 421 讀寫結構 422 從文件流中讀取結構數據 423 復制文件句柄 424 強制文件句柄設置 425 把文件句柄和文件流聯系起來 426 文件共享 427 打開文件進行共享訪問 428 鎖定文件內容 429 獲取更精細的文件鎖定控制 430 使用DOS目錄 431 打開目錄 432 讀取目錄入口 433 利用目錄服務讀C:\WINDOWS 434 反繞目錄 435 遞歸讀取磁碟文件 436 判斷當前文件位置 437 打開共享文件流 438 在指定目錄中創建唯一文件 439 創建新文件 440 利用DOS服務訪問文件 441 強制二進制或文本文件打開 442 按行寫文本 443 按行讀文本 444 應用FGETS和FPUTS 445 強制二進制文件翻譯 446 為什麼TEXTCOPY不能拷貝二進制文件 447 判斷文件結尾 448 舍棄字元 449 讀取格式化的文件數據 450 根據當前位置定位文件指針 451 獲取文件句柄信息 452 重新打開文件流 第八章 數組、指針和結構 453 數組 454 申明數組 455 形象表示數組 456 數組的內存需求 457 初始化數組 458 訪問數組元素 459 通過循環訪問數組元素 460 使用常量定義數組 461 把一個數組傳送給函數 462 把數組看作函數 463 區分字元串數組 464 在堆棧中傳送數組 465 判斷數組能存放多少個元素 466 為大數組使用HUGE內存模式 467 權衡數組與動態存儲的利弊 468 多維數組 469 行與列 470 訪問二維數組的元素 471 給二維數組元素賦初值 472 判斷多維數組佔用的內存 473 通過循環顯示二維數組 474 遍歷三維數組 475 初始化多維數組 476 把二維數組傳送給函數 477 把多維數組當作一維數組 478 C是如何存放多維數組的 479 按行存放與按列存放 480 以數組為成員的結構數組 481 聯合 482 使用聯合節省內存 483 使用REGS——一種典型的聯合 484 應用REGS聯合中 485 位欄位結構 486 形象表示位欄位結構 487 位欄位結構的取值范圍 488 在數組中查找指定的值 489 對分查找 490 應用對分查找法 491 對數組進行排序 492 冒泡排序法 493 應用冒泡排序法 494 選擇排序法 495 應用選擇排序法 496 SHELL希爾排序法 497 應用SHELL排序法 498 快速排序法 499 應用快速排序法 500 上述排序方法的遺留問題 501 對字元串數組排序 502 利用LFIND搜索字元串 503 利用LSEARCH搜索數值 504 利用BSEARCH搜索已排序數組 505 利用QSORT對數組排序 506 判斷數組元素的個數 507 把指針理解為地址 508 判斷變數的地址 509 C是如何把數組當成指針的 510 對數組應用取地址運算符 (&) 511 申明指針變數 512 間接訪問指針 513 使用指針值 514 指針與函數參數的使用 515 指針運算 516 指針的增值與減值 517 聯合應用指針引用與增值 518 利用指針遍歷數組 519 利用返回值為指針的函數 520 創建返回值為指針的函數 521 指針數組 522 形象表示字元串數組 523 遍歷字元串數組 524 把字元串數組當成指針 525 使用指向一個指向字元串的指針的指針 526 利用指針申明字元串常量 527 VOID類型指針 528 創建指向函數的指針 529 使用指向函數的指針 530 使用三級指針 531 結構 532 結構是變數申明的模板 533 結構標記是結構的名稱 534 用不同的方式申明結構 535 結構成員 536 形象表示結構 537 應用結構 538 把結構傳遞給函數 539 在函數內部改變結構 540 (*point).member間接引用 541 使用pointer-->member格式 542 使用無標記結構 543 結構定義的范圍 544 初始化結構 545 進行結構I/O 546 使用嵌套結構 547 包含數組的結構 548 創建結構數組 第九章 DOS和BIOS服務 549 DOS系統服務 550 BIOS服務 551 寄存器 552 標志寄存器 553 軟體中斷 554 利用BIOS訪問指針 555 CONTROL+BREAK信息 556 可能的DOS副作用 557 暫時掛起程序 558 控制聲音 559 獲取國家專用的信息 560 磁碟傳輸地址 561 訪問和控制磁碟傳輸區 562 BIOS鍵盤服務 563 獲取BIOS設備列表 564 控制串列口I/O 565 利用BDOS訪問DOS服務 566 獲取擴展DOS錯誤信息 567 判斷BIOS常規內存數量 568 創建遠指針FAR PRINTER 569 把遠端地址分解為段地址和偏移地址 570 判斷自由核心內存 571 讀段寄存器設置 572 內存的類型 573 常規內存 574 常規內存的分布 575 訪問常規內存 576 為什麼PC和DOS限制於1MB 577 從段和偏移量中產生地址 578 擴充內存 579 使用擴充內存 580 擴展內存 581 實模式和保護模式 582 訪問擴展內存 583 高端內存區 584 堆棧 585 各種堆棧配置 586 判斷程序的當前堆棧大小 587 使用-STKLEN控制堆棧空間 588 給內存區域賦值 589 拷貝內存區域 590 拷貝內存區域直到某指定位元組 591 比較兩個無符號字元數組 592 交換兩個相鄰字元串位元組 593 分配動態內存 594 再談類型轉換 595 不再需要時釋放內存 596 利用CALLOC函數分配內存 597 堆 598 解決64KB堆限制 599 從堆棧中分配內存 600 分配巨型數據 601 改變被分配內存區域的大小 602 BRK函數 603 檢測堆 604 快速堆檢測 605 填充自由堆空間 606 檢測特定的堆入口 607 遍歷堆入口 608 訪問指定內存單元 609 向內存中置數 610 PC埠 第十章 內存管理 611 訪問埠值 612 CMOS 613 內存模式 614 微型內存模式 615 小型內存模式 616 中型內存模式 617 壓縮內存模式 618 大型內存模式 619 巨型內存模式 620 判斷當前的內存模式 第十一章 日期和時間 621 獲取當前日期與時間 622 將日期和時間從秒的形式轉換成ASCII碼 623 DAYLIGHT SAVINGS ADJUST MENT 624 延遲若干毫秒 625 判斷程序的耗時 626 比較兩個時間 627 獲取數據串 628 獲取時間串 629 讀BIOS計時器 630 使用當地時間 631 使用格林威治平時 632 獲取DOS系統時間 633 獲取系統日期 634 設置DOS系統時間 635 設置DOS系統日期 636 把DOS日期轉換為UNIX格式 637 利用TIMZONE計算時差 638 判斷當前時區 639 利用TZSET設置時區區域 640 利用TZ環境入口 641 從用戶程序中設置TZ環境入口 642 獲取時區信息 643 以秒鍾的形式設置自1/2/1970午夜以來的系統時間 644 把日期轉換成自1/1/1970以來的秒數 645 判斷日期的儒略歷日期 646 創建格式化日期和時間串 647 PC時鍾類型 第十二章 重定向I/O和進程命令行 648 等候按鍵 649 提醒用戶輸入密碼 650 自己編寫密碼函數 651 輸出重定向 652 輸入重定向 653 聯合使用INPUT和OUTPUT重定向 654 利用STDOUT和STDIN 655 管道運算符 656 GETCHAR和PUTCHAR 657 對重定向輸入進行編號 658 確保信息出現在屏幕上 659 自定義MORE命令 660 顯示重定向行的數目 661 顯示得定向字元的個數 662 創建定時的MORE命令 663 防止I/O重定向 664 應用STDPRN文件句柄 665 把重定向輸出分割到一個文件中 666 應用STDAUX文件句柄 667 在重定向輸入人尋找子串的出現 668 顯示重定義輸入的頭N行 669 命令行變元 670 顯示命令行變元的個數 671 顯示命令行 672 使用引號內的命令行變元 673 從命令行中顯示文件內容 674 把ARGV當作指針 675 C是如何知道命令行的 676 環境 677 把ENV當作一個指針 678 對MAIN的參數使用VOID 679 使用命令行數字 680 出口狀態值 681 為出口狀態過程使用RETURN 682 判斷是否把MAIN申明為VOID 683 在環境中搜索特定入口 684 DOS是如何對待環境的 685 應用ENVIRON全局變數 686 給當前環境添加入口 687 給DOS環境添加元素 688 退出當前程序 689 定義在程序結束時執行的函數 第十三章 編程工具 690 庫 691 重復使用目標代碼 692 編譯C和OBJ文件時出現的問題 693 創建庫文件 694 常用的庫操作 695 列出庫文件中的子例行程序 696 利用庫減少編譯時間 697 庫管理程序的其他功能 698 連接器 699 連接器的功能 700 使用連接映像 701 使用連接器響應文件 702 使用MAKE命令簡化應用程序的創建 703 生成一個簡單的MAKE文件 704 通過MAKE使用多依賴性文件 705 說明用戶的MAKE文件 706 MAKE和命令行 707 在MAKE文件中放置多個依賴性 708 顯現的和隱含的MAKE法則 709 使用MAKE宏 710 預定義MAKE宏 711 用MAKE執行條件進程 712 驗證一個MAKE宏 713 再次包含一個MAKE文件 714 使用MAKE的宏修飾符 715 因錯誤結束MAKE文件 716 關閉命令顯示 717 使用文件BUILTINS.MAK 718 在MAKE中執行出口狀態進程 719 同時激活和改變一個宏 720 為多個依賴文件執行一個MAKE命令 第十四章 高級C語言編程 721 判斷是否有數學協處理器 722 理解CTYPEH,ISTYPE宏 723 控制直接的視像 724 檢查系統和路徑錯誤 725 顯示預定義的錯誤信息 726 決定操作系統版本號 727 理解可移值性 728 執行一個非本地的GOTO 729 獲得進程ID(PID) 730 激活一個內部的DOS命令 731 使用-PSP全局變數 732 在變數申明中使用CONST修飾符 733 使用枚舉類型 734 放置一個枚舉類型來使用 735 理解一個枚舉值 736 分配一個特殊的值給枚舉類型 737 保存和恢復寄存器 738 動態列表簡介 739 申明一個鏈接的列表結構 740 建立一個鏈接的列表 741 一個簡單的鏈表例子 742 理解鏈表轉移 743 創建一個更有用的列表 744 增加一個列表入口 745 插入一個列表入口 746 顯示一個存儲的目錄 747 從一個列表中刪除一個元素 748 使用一個雙向鏈表 749 創建一個簡單的雙向鏈表 750 理解NODE-->PREVIOUS-->NEXT 751 從一個雙向鏈表中移走一個元素 752 在一個雙向鏈表中插入一個元素 753 理解子進程 754 派生一個子進程 755 使用其他的SPAWNLXX函數 756 使用SPAWNVXX函數 757 執行一個子進程 758 使用其他的EXECLXX函數 759 使用EXECVXX函數 760 理解覆蓋 761 理解中斷 762 PC機的中斷 763 使用中斷關鍵字 764 判斷一個中斷向量 765 設置一個中斷向量 766 使能與禁止中斷 767 生成簡單的中斷處理器 768 鏈接一個二次中斷 769 生成一個中斷 770 捕獲PC機時鍾 771 理解致命錯誤 772 C語言中的致命錯誤處理器 773 一個更完全的致命錯誤處理器 774 恢復改變過的中斷 775 生成一個Ctrl+Break處理器 776 在用戶的致命錯誤處理器使用DOS服務 777 使用指令集選擇改善性能 778 直接插入內部函數 779 使能和禁止內在函數 780 理解快速函數調用 781 -FASTCALL參數傳遞的法則 782 理解不變代碼 783 理解冗載入禁止 784 理解代碼緊縮 785 理解循環緊縮 786 理解循環引入和強度削減 787 消除普通的子表達式 788 標准C語言轉換 789 理解C語言的4個基本類型 790 基本類型與派生類型 791 理解初始化值 792 理解連接 793 理解臨時申明 794 申明和定義 795 理解左值LVALUE 796 理解右值RVALUE 797 使用段寄存器關鍵字 798 謹慎使用遠指針 799 理解正常化的指針 800 數學協處理器語句 801 理解變數中的CDECL和PASCAL 802 防止循環包含 第十五章 C++入門 803 C++介紹 804 C++源文件的差異 805 從簡單的C++程序開始 806 理解COUT I/O流 807 使用COUT輸出值和變數 808 用COUT連接不同的數據類型 809 顯示十六進制和八進制數值 810 重定向COUT 811 如果鍾情PRINTF,使用PRINTF 812 輸出 CERR 813 用CIN得到輸入 814 CIN不要使用指針 815 理解CIN如何選擇數據域 816 理解輸入輸出流如何獲得變數類型 817 使用CLOG實現輸出 818 CIN、OCUT、CERR和CLOG是類的實例 819 使用FLUSH操縱符快速輸出 820 理解ISOTREAM.H頭文件包含的內容 821 C++需要函數原型 822 C++增加的新關鍵字 823 C++支持匿名聯合 824 分辨全局范圍 825 提供預設參數值 826 控制COUT的輸出寬度 827 使用SETW設置COUT寬度 828 指定COUT的填充字元 829 左對齊和右對齊COUT的輸出 830 控制COUT顯示浮點數字的數目 831 以小數或科學記數格式顯示數值 832 恢復COUT至默認值 833 設置輸入輸出基數 834 在需要的地方定義變數 835 在函數原型中放置默認參數值 836 使用按位運算符及COUT 837 理解遲緩或短路計算 838 在C++中使用CONST關鍵字 839 在C++中使用ENUM關鍵字 840 理解自由空間 841 用NEW分配內存 842 為多個數組分配內存 843 無自由空間的測試 844 關於堆空間 845 使用FAR指針和NEW運算符 846 釋放內存至自由空間 847 理解C++中的引用 848 給函數傳遞引用 849 防止隱藏對象 850 用三種方法傳遞參數 851 使用引用的規則 852 函數可返回引用 853 使用INLINE關鍵字 854 使用C++的ASM關鍵字 855 用CIN讀字元 856 用COUT寫字元 857 簡單過濾器程序 858 簡單的TEE命令 859 簡單的FIRST 860 更好的FIRST命令 861 文件結束測試 862 用ENDL產生新行 863 理解連接規范 864 理解重載 865 重載函數 866 重載函數的第二個例子 867 避免不明確的重載 868 使用CIN每次讀一行 869 在循環中使用CIN.GETLINE 870 改變NEW運算符的預設處理器 871 用SET-NEW-HANDLER函數設置NEW處理器 872 判斷C++編譯 873 理解C++中的結構 874 結構中定義函數成員 875 在結構內定義成員函數 876 在結構外定義成員函數 877 給成員函數傳遞參數 878 同一結構的多個變數 879 不同結構具有同名函數成員 880 同名成員不同函數 第十六章 對象 881 理解對象 882 理解面向對象編程 883 理解為什麼使用對象 884 把程序分解成對象 885 理解對象和類 886 理解C++的類 887 理解封裝 888 理解多態性 889 理解繼承 890 類和結構的選擇 891 創建簡單類模型 892 實現簡單類的程序 893 定義類構件 894 理解作用域分辨符 895 在申明中使用或省略類名 896 理解PUBLIC:標志 897 理解信息隱藏 898 理解PRIVATE:標志 899 理解PROTECTED:標志 900 使用公用和私數據 901 決定什麼隱藏什麼公開 902 公用方法常稱為介面函數 903 在類外定義類函數 904 在類的內部和外部定義方法 905 理解對象實例 906 對象實例共享代碼

D. C語言在通信方面的應用

如果你明白通信就是雙方約定協議的過程就能明白了,C是用來編寫通信協議的,把你的需要通信的內容通過c編寫的轉換驅動,編譯成通信協議格式,發給對方,

說白了,C就是個工具,不一定C,basic也能寫成XP,關鍵看你怎麼用,Unix 都是C編寫的,

單片機最好的驅動就是C了,移植性強,可讀性好,定義也很方便,當年畢設都是用C編寫51單片機的一個通信板驅動,
個人理解,通信就是握手。哈哈。

E. 混合編程matlab。雙擊exe(或從cmd中運行),程序運行完畢,報錯:c0000005,怎麼回事

在其他電腦上試試

F. 昆明電腦培訓學校告訴你昆明北大青鳥校區IOS課程介紹

你知道嗎?IOS軟體工程師已經成為軟體人才中的緊缺型人才!


國內外出現大量的「IOS人才荒」,未來幾年IOS人才需求缺口將達百萬!


招聘網站上,IOS軟體工程師依然成為各大企業哄搶的對象,不少企業為招聘這類人才,不惜花重金招攬,騰訊、聯想、新浪等國內企業也毫不例外地爭奪IOS軟體工程師,很多IOS開發崗位年薪已高達幾十萬!







課程內容


內容介紹




預備階段




1、文件管理器Finder
2、iWork使用Numbers,Keynote,Pages
3、Safari瀏覽器


?
?
MacOs的使用,iWork的使用




iOS開發基礎




1、iOS開發的系統環境介紹、Xcode集成開發環境詳解、常用軟體的介紹
2、數據類型、常量和變數、運算符、賦值語句和表達式;分支、循環
3、函數,數組(一維數組、二維數組、多維數組),結構體
4、指針數組、數組指針,結構體指針
5、指向指針的指針,宏定義、枚舉,const,static
?


?
?
1、Xcode、SVN
2、C語言是iOS開發的入門基礎語言,本部分主要介紹C語言的基本語法,程序結構,以及指針的各種操作。為接下來Objective-C語言的學習打下基礎。
?




1、面向對象(OOP)和面向過程、類(Class)和對象(Object)、類的定義
2、創建對象、self和super關鍵字、屬性以及點語法(nonatomic,assign、retain、,readonly、readwrite)
3、便利構造器、單例(Singleton)
4、堆棧、內存管理(alloc、、retain,release、autorelease,strong、weak)
5、鍵值編碼(KVC)、鍵值監聽(KVO)、通知(NSNotification)
6、類目(Category)、延展(Extention)、協議(protocol)
?


?
?
?
?
?
?
Objective-C是iOS與MacOS開發的主要語言,它是對C語言的擴展,並融入了面向對象的特點。包含封裝、繼承、多態三大特性,本部分主要介紹OC的基本語法,新的特性,內存管理等內容
?




1、字元串(NSStringNSMutableString)、數值對象(NSNumberNSValue)
2、數組(NSArray,NSMutableArray)、字典(NSDictionary,NSMutableDictionary)、集合(NSSet,NSMutableSet)、快速枚舉(for?in)NSIndexPath
3、日期與時間(NSDate)、日期格式(NSDataFormatter)、日歷(NSCalendar)、定時器(NSTimer)
4、文件管理(NSFileManager)、程序包(NSBundle)、緩沖區(NSData)
5、網路連接(NSURLConnection)、網路地址(NSURL)、網路請求(NSURLRequest)、請求回應(NSResponse)、錯誤信息處理(N0SError)
6、MVC編程,簡單控制項一:標簽(UILabel)、文本輸入(UITextField)、按鈕(UIButton)、提示框(UIAlertView、UIActionSheet
7、使用面向對象OOP方法,實施計算機APP應用.要求學員應用前期學習中的大部分知識點
?


?
?
?
?
iOS的基礎框架,包含了iOS開發的基本數據類型,在iOSSDK中幾乎部NS開頭的類都屬於這個框架,我們將詳細介紹開發中常用的類。




iOS開發




1、窗口(UIWindow)、視圖(UIView)、應用程序(UIApplication)
2、繪圖(drawRect)、QuartzCoreDemo、CGContextRef
3、觸摸(UITouch)、事件(UIEvent)、手勢(UIGestureRecognizer)、UIResponder、消息傳遞、響應者鏈
4、UIView以及CALayer動畫(CAAnimation、CABasicAnimation、CAKeyFrameAnimation)
5、活動提示(UIActivityIndicatorView)、圖像(UIImageView)
6、控制項二:滾動視圖(UIScrollView)、頁控制器(UIPageControl)、開關(UISwitch)、單選(UISegmentControl)、滑塊(UISlider)
7、控制項三:多行文本(UITextView)、網頁視圖(UIWebView)、滾輪(UIPickerView)、日期滾輪(UIDatePickerView)、表格視圖(UITableView)、表格項(UITableViewCell)
8、視圖控制器(UIViewController)、導航控制器(UINavigationController)、標簽控制器(UITabBarController)、表格控制器(UITableViewController)、相冊控制器(UIImagePickerController)
?


?
?
?
?
?
?
?
?
?
?
?
?
?
UIKit處於Cocoa四層結構的上層CocoaTouch層,是iOS開發中的控制項框架,定義了幾乎部可視化控制項,在iOS開發中占據地位,我們不會學習各個控制項的用法,而且會講述各個控制項在不同版本系統里的樣式,教大家如何自定義控制項樣式。學完他們我們就可以做自己個性化的界面了。




結合前期所學知識,應用UIKit框架詳解中所學的UI控制項及知識點,模擬實現Safari瀏覽器


iPhoneSafari瀏覽器原型App。




1、音頻播放(AVAudioPlayer)、視頻播放(MPMoviePlayerViewController)以及播放ipod音樂
2、照相機(UIImagePickerController)以及相冊的使用
3、簡訊()、郵件(MFMailComposeViewController)的使用
4、加速計(UIAccelerometer)的使用、帳號注冊、真機調試、上傳程序
5、地圖(MKMapView)的使用以及定位(CoreLocation)
6、數據持久化(文件讀寫、sqlite資料庫、歸檔、NSCoding協議)、雲存儲(iCloud)
7、多線程開發(NSThread、NSLock),操作隊列(NSOperationQueue)
8、網路請求(GET、POST)、xml解析、json解析、Socket編程
?


iOS應用特性框架是對上述兩個框架之外其他框架的統稱。主要課程內容為:音頻、視頻的播放、照相機的使用、加速計的應用,地圖框架的使用、簡訊、郵件的應用等等,而且也會介紹當前應用開發中使用非常廣泛的開源框架,同時還將講解開發者帳號的注冊、真機調試、以及程序上傳。




iOS游戲開發




1、Cocos2DHelloWorld,CCDirector(導演類),CCScene(場景類),CCLayer
2、CCSprite(精靈類),CCAction(動作)
3、CCMemu(菜單),CCLabelTTF(標簽)
4、CCPointParticleSystem(點粒子系統)
5、練習:植物大戰僵屍游戲開發
?


2D游戲引擎的使用,部課程內容以"植物大戰僵屍"為例,貫穿其中




1、在Xcode下編譯C++程序,C++類Class,成員變數,成員函數,對象的創建
2、構造函數與析構函數,newdelete關鍵字,內存管理
3、繼承,函數重載,操作符重載,拷貝構造
4、模版template與泛型
5、Objective-C與C++混合編程
?


C++是目前流行的開發語言之一,C++基本語法,C++面象對像的特性.在XCode下如何使用C++語言編程.




1、物理世界(b2World),剛體(b2Body),精靈與剛體連接
2、碰撞測試(b2ContactListener)
3、剛體的連接關節(b2Joint)
4、練習:憤怒的小鳥開發
5、OpenGLES開發基礎
?


iOS游戲開發中使用多的物理引擎,以憤怒的小鳥為例學習Box2D開發.




項目實訓




項目會用到網路、資料庫、各種常用控制項、以及各種Foundation類。目前有很多項目可以選擇使用,比如:互動網路(新聞類應用)、樂視(電影類應用)、創業邦(雜志類應用)、尚品網(購物類應用)、雅座空間(團購類應用)、找地(定位類應用)、我是數學家(教育類應用)、YY客戶端(語音類應用)、麥咨達(條碼掃描類應用)、中國建行(銀行類應用)、CuteMath(游戲類應用)、車震搖搖樂(娛樂類應用)、新浪微博(微博類應用)等等


老師程帶領學生做一個真實項目,從需求分析開始帶起,然後技術調研,工期評估、編碼、測試、優化代碼、上傳程序等項目內容會包括幾點:網路數據解析、團隊協調、版本管理、製作文檔、復雜表布局、製作CELL類、動畫應用、定位、方向地址解析、網路地圖應用

G. 誰知道匯編與c語言怎樣互相調用啊,還有怎樣在linux編譯啊,如果可以的話,就寫個簡單的程序介紹。謝謝哈

對於C和匯編語言的介面主要有兩個問題需要解決。
一、調用者與被調用者的參數傳遞
這種數據傳遞通過堆棧完成,在執行調用時從調用程序參數表中的最後一個參數開始 ,自動依次壓入堆棧;將所有參數壓入堆棧後,再自動將被調用程序執行結束後的返回地址 (斷點)壓入堆棧,以使被調程序結束後能返回主調程序的正確位置而繼續執行。例如一調用名為add匯編程序模塊的主函數:main( ){...... add(dest,op1,op2,flages);......}。在此例中對主函數進行反匯編,主函數在調用add函數前自動組織的堆棧。
.
.
.
lea 0xfffffffe8(%ebp),%eax #flages數組的首地址入棧
push %eax
pushl 0xfffffff8(%ebp) #OP2入棧
pushl 0xfffffffc(%ebp) #OP1 入棧
pushl 0xfffffff0(%ebp) #dest地址入棧
call 0x80483f0 <add> #調用add函數
.
.

進入匯編子程序後,為了能正確獲取主調程序並存入堆棧中的數據,被調的匯編子程序先後要做如下一些工作:
1、 保存esp的副本
進入匯編子程序後,子程序中免不了要有壓棧和出棧的操作,故ESP時刻在變化。為了能用 ESP訪問堆棧中的參數,安全辦法是一進入子程序後,先為ESP制副本,以後對傳遞參數的訪問 都用副本進行。一般可用EBP保存ESP,如:
push %ebp
mov %ebp,%esp
2、保留數據空間
如果匯編子程序中需要一些局部數據,可以簡單地減小ESP的值,以便在棧空間中保留出一段存貯區,用於存放局部數據,該區域須在子程序結束後恢復。如下語句可以保留一個局部數據區:
push %ebp
mov %ebp ,%esp
subl space,%esp;設space=4
movl $0x0,%ebp
movl $0x0,-2(%ebp)
如上語句段中,space是局部數據的總位元組數。在以後的應用中,由於ESP是變化的,而 EBP是 固定的,用負偏移量可以存取局部變數。上例利用EBP及偏移量,將兩個字的局部數 據初始化為0。
3、保留寄存器值
如果在被調子程序中用到ESI、EDI等其它寄存器,則應先把它們壓入堆棧,以保留寄存器原值 。例如,下例就是將ESI和EDI寄存器的值壓棧:
pushl %ebp
movl %ebp ,%esp
subl $space ,%esp,
pushl %esi
pushl %edi
4、獲取傳遞參數
作完了1~3步的操作後,結合上面C程序傳送參數這一例子,現在棧結構如圖二所示。

由此可見,EBP保留了ESP在參數傳遞完並將EBP壓棧後的一個副本,利用EBP可以很方便地訪問各參數。現假設各參數都是2位元組的整數值,在小模式編譯方式共佔用2個位元組。如果要將傳遞的參數op1、op2取出,並分別賦給ebx、ecx寄存器,可由下列語句完成這一功能:
movl 0x8(%ebp),%eax
movl 0xc(%ebp),%ecx
5、子程序返回值
當子程序的執行結果需要返回時,根據返回值的字長,C按如下約定接收返回值:1位元組在AL 寄存器中;2位元組在EAX寄存器中;4位元組則高位部分在EDX中、低位部分在EAX寄存器中。C可從這些寄存器中取出返回值。
6、退出匯編子程序
結束匯編子程序的步驟如下:
1) 若ESS、EDS、ESI或EDI已被壓棧,則需按保存它們的相反順序彈出它們。
2) 若在過程開始時分配了局部數據空間,則以指令 mov %esp和%ebp 恢復%esp。
3) 以指令pop %ebp 恢復%ebp ,該步是必須的。或者可以用leave語句來恢復%ebp 。它相當於movl %ebp, %esp; popl %ebp
4) 最後以ret結束匯編程序。
二、 說明和建立調用者與被調用者間的連系
為了建立調用與被調用模塊間的連接關系,被調用的匯編程序應用global,說明其可被外部模塊調用;而調用程序則應預先說明要引用的外部模塊名。下面通過我的例子進行說明,該例是C調用add0的匯編子程序。程序清單如下:
/* add.c */
#include <stdio.h>
extern void add(int *dest,int op1,int op2,short int*flages);
/*聲明調用外部的匯編函數*/
int main(void){
int op1,op2,result;
int *dest=&result;
short int flages[4]={0,0,0,0};
printf("please enter two soure operater:");
scanf("%x%x",&op1,&op2);
add(dest,op1,op2,flages);/*調用add0函數*/
printf("The result of ADD is :%x/n flages N(negative) Z(zero) C(carry) V(overflow:%d,%d,%d,%d/n",*dest,flages[3],flages[2],flages[1],flages[0]);
return 0;
}
#add.s
.text
.align 2
.global add
.type add,function
#定義add為外部可調用的函數
add:
push %ebp #ebp寄存器內容壓棧,保存add函數的上級調用函數的棧基地址
mov %esp,%ebp #esp值賦給ebp,設置add函數的棧基地址
mov 0x8(%ebp),%edx
mov 0x10(%ebp),%eax
add 0xc(%ebp),%eax
mov %eax,(%edx)
mov 0x14(%ebp),%eax
jo OF
C:
jc CF
S:
js SF
jz ZF
jmp out
OF:
movw $0x1,(%eax)
jmp C
CF:
movw $0x1,0x2(%eax)
jmp S
SF:
movw $0x1,0x6(%eax)
movw $0x0,0x4(%eax)
jmp out
ZF:
movw $0x1,0x4(%eax)
movw $0x0,0x6(%eax)
out:
leave #將ebp值賦給esp,pop先前棧內的上級函數棧的基地址給#ebp,恢復原棧基址
ret #add函數返回,回到上級的調用函數

其中.text 標志一個代碼段的開始,這是AT&T的段格式;global add;/n
type add,function說明add是公用的,可以由外部其它單獨編譯模塊調用。
將C源程序以文件名add.c存檔,匯編語言源程序以add.s 存檔;通過MAKE進行編譯和連接連接代碼如下:

all: myadd
myadd: adds.o addc.o
gcc –o myadd adds.o adc.o
adds.o: add.s
as –o adds.o add.s
addc.o: add.c
gcc –g –o addc.o add.c
由上可見,在C中調用匯編模塊很方便。所以我們在實際軟體開發中,可以採用混合編程的技術,從而盡可能利用各語言的優勢。既滿足實際問題的需要,又簡化設計過程,達到事半功倍的效果。

H. 關於C語言的三個問題。解決後再加100分!

C語言作為計算機最重要的一種語言,關於它的資料是不計其數的。我早看夠了Turbo C那個環境。
我剛剛下載了一個用於C 語言的windows編譯環境wintc191 ,它比Turbo C要好很多的。實在是太棒了!軟體主要特色:
1.在WINDOWS下編輯TC代碼,可以充分利用WINDOWS的支持剪貼版和中文的特點
2.Include和Lib路徑自動定位,告別TC設置路徑的歷史
3.編譯錯誤捕捉功能,編譯時不會出現煩人的DOS窗口
4.支持C內嵌匯編從而實現C/ASM混合編程
5.支持C擴展庫(自定義LIB庫)
6.錯誤警告定位功能、出現編譯錯誤時雙擊輸出框里的出錯行信息可以自動尋找到錯誤的行,就像DOS的TC那樣
7.支持語法加亮功能,並可以自定義設置
8.沒有目錄路徑限制,你甚至可以安裝到帶有空格的路徑文件夾里
9.允許自定義設置輸入風格,能夠實現VC類似的輸入風格
10.可選擇是否生成ASM、MAP或OBJ文件,你甚至可以指定只生成EXE文件
11.穩定的文件操作功能,支持歷史記錄列表和使用模板
12.撤消和重復功能,並可以按照自己內存情況設置最多撤消次數(最多允許999次)
13.具有行標計數的功能,並可以設置樣式
該軟體的下載地址是:http://www.cstudy.cn/soft/wintc191.EXE 直接雙擊這個地址就可以下載了。這個地址我剛剛試過的,所以我只給了你這一個地址。
C語言學習系統是有很多的版本的,可以在「迅雷」裡面搜索。當然很多的免費的學習系統比那些需要注冊的還要好很多的。晨輝的那個學習系統我個人感覺不怎麼樣,建議你在一些專業的C語言學習網站上去找一個更好的吧。

I. VC++、C、CC之間有什麼區別

vc++是微軟開發的C++開發工具,主要用於window平台的軟體開發,但是合理的配置也可以編譯linux或者android下的軟體(需要對應的sdk或者gcc編譯器)。針對window應用的開發,其提供了mfc庫,可以提高window應用程序開發的速度和質量。一般應用於網路通信、UI開發、應用軟體、服務軟體等大中型軟體項目開發
C不是C++,雖然一開始是一種面向過程編程的語言,但新的linux內核使用了該語言編程,但是卻是遵循的面向對象的概念。可以進行埠、定址和內存操作,一般應用於內核、驅動、靜態庫、動態庫等小型項目或者系統項目的開發。

CC一般多存在於makefile文件,是一種編譯時的環境變數,往往指向一個C/C++的編譯器,並沒有專門的實體和其對應。

閱讀全文

與cc混合編程相關的資料

熱點內容
愛上北斗星男友在哪個app上看 瀏覽:413
主力散戶派發源碼 瀏覽:663
linux如何修復伺服器時間 瀏覽:55
榮縣優途網約車app叫什麼 瀏覽:472
百姓網app截圖是什麼意思 瀏覽:222
php如何嵌入html 瀏覽:809
解壓專家怎麼傳輸 瀏覽:743
如何共享伺服器的網路連接 瀏覽:132
程序員簡易表白代碼 瀏覽:166
什麼是無線加密狗 瀏覽:62
國家反詐中心app為什麼會彈出 瀏覽:67
cad壓縮圖列印 瀏覽:102
網頁打開速度與伺服器有什麼關系 瀏覽:863
android開發技術文檔 瀏覽:65
32單片機寫程序 瀏覽:51
三星雙清無命令 瀏覽:839
漢壽小程序源碼 瀏覽:344
易助erp雲伺服器 瀏覽:533
修改本地賬戶管理員文件夾 瀏覽:420
python爬蟲工程師招聘 瀏覽:286