C 程式 很迷惑的現象,一個C 程式 很迷惑的現象

2023-01-03 06:35:29 字數 4677 閱讀 5852

1樓:匿名使用者

1全部我覺得因為系統已經有swap函式了。如果宣告在前面,編譯器會使用自定義的swap函式

否者使用標準庫中的swap函式,見

2樓:

你的swap()函式宣告要寫到main()外面。不然作用域的緣故,不起作用。

3樓:匿名使用者

手上沒有vc6.0,不好測試

不過vc6算是比較老的東西了,對c++支援並不好。

因為當時vc6出來時,c++的標準還沒確定呢。

雖然打上一些補丁或許可以應付,但我是建議換個編譯軟體了,至少現在也要用vc2005以後的版本了,

如果當心vc2005之後的版本太過龐大,那麼可以用devc++之類的gnu軟體,雖然有些版本也有些舊了,但對c++的支援還是十分不錯的。

這個情況,我用devc++測過,完全是沒有問題的。

4樓:

你 的寫法也不錯,不夠在main()函式前必須加一句函式說明,方法是:

在main()函式前面加一句

void swap(int &a,int &b);

或者這一句也可以:

void swap(int &,int &);

5樓:

雖然我學的是c,但貌似c++裡面也不能把函式的宣告放在main中吧?你給成下面的程式試試,應該就可以了。

#include

using namespace std;

void swap(int &a,int &b);

int main()

void swap(int &a,int &b)

6樓:遮天灬傲屹

把swap函式放在main函式之後,那麼你要在開始時申明該函式

如void swap(int ,int );

int main。。。。。。

7樓:lee木頭人

你電腦上如果有編譯器的話,你把後面的程式除錯一下,在呼叫函式的地方設定斷點然後一步一步執行看看,觀察下程式執行的步驟,可能就會看出問題來了

8樓:匿名使用者

把swap的函式宣告放在主函式前面,別放在主函式裡面

c++的一個奇怪的現象

9樓:匿名使用者

期望double截斷後比較?這要分析浮點小數表示,這和數學不一樣,你要研究ieee的double格式了。

你可以認為這種轉換總是有誤差的,所謂的「正常」恰恰是異常情況

我有c++程式的一個困惑:不知道怎麼定義或者包含檔案?希望各位幫幫忙喲

10樓:汪好帥

你的意思是分解函式實現與函式宣告,變數宣告吧。

把類變數、函式定義部分放到.h中,函式實現部分放到.cpp部分。.cpp中包含前面定義的類標頭檔案

11樓:肖婷

如果是自己定義的標頭檔案,就要先把它放進到include資料夾裡,再寫程式時菜可以引用,用#include「 」

12樓:匿名使用者

包含檔案當然是用#include<>了。。。。

關於c++的迷惑求大蝦指點!

13樓:小倍王子

1全部先講講介面到底是怎麼一回事,比如windows下的應用程式,它們其實是windows作業系統(比如xp,win7)他們提供給我們使用的介面,也稱api。

比如我要開啟一個視窗,windows作業系統提供給c++4個函式,依次執行它們就可以生成一個視窗。

一些廠商的產品,vc++,dephi,qt等,它們和c++不是一個概念,是用c++做出來的各種工具庫,他們把windows api都封裝在了裡面,便於使用。

比如vc++裡面的mfc,可以幫助你很輕鬆的寫出各種功能。它把windows程式的很多功能函式都封裝成一個個類,你只需要使用它的函式就行了。

我的建議是,只學windows api,因為它才是最本質的東西。其他的任何東西都只是在不斷的組織windows api。

vc6.0是很好的編譯器,對初學者來說已經完全足夠了

14樓:_笑_哭

那個是windows api的東西,你可以買本書自己學。不過比較難哈。。。

15樓:

都會經歷這個過程!

個人覺得確實要做點東西出來,有點成就感,才有學習的動力!

你可以學習一下圖形介面庫,想mfc、qt 、wxwidget之類的!

16樓:匿名使用者

花幾個月時間折騰一下cximage和mfc弄個影象瀏覽器出來。絕對有收穫。

有關c++的困惑。。求解答

17樓:桌上的_杯具

c語言毫無疑問是當今最強大的語言,無論windows,linux,mac,還是ios,都是以c語言為基礎編寫的。如果你要做win32應用程式,只要技術到位,c++完全可以滿足你的一切需求

18樓:匿名使用者

win32是平臺名字, c++是語言名字, 有什麼衝突嗎

19樓:匿名使用者

c++ 開發的東西 穩定性很好的

20樓:匿名使用者

寫洗衣機,數碼電視機,都屬於微控制器程式,用c 語言的多。

c++ 主要用來開發一些 大型應用程式,很穩定。

本人看了c++之後有些疑惑: 當幾個人分工編寫一個程式的時候怎麼樣才能最後組合成一個程式,實現功能?

21樓:

一般不會出現這種分工的,不會出現幾個人負責一個類的。一般都是約定好介面。然後各寫各地,最後再合併起來。

22樓:國家理念

使用協作系統。

比如svn,cvs(已經被淘汰了好像)等等,如果是vs下,可以試試team foundation server

23樓:申江漁夫

通常分工是各自完成不同模組的,如果互相之間有呼叫,就定義約定好的介面。

24樓:燕子嘎哈桃保店

軟體開發文件詳細規定了各種藉口和類的規範,只要嚴格按照這個文件來,不會有問題的。這個文件的制定,則需要做系統設計的人來做,這個人一般是經驗比較豐富的。

25樓:

大家商量好來做的。不同的人做不同的分工。

使用qt gui編寫了一個c++程式,執行一段時間就報異常退出,非常困惑

26樓:匿名使用者

目測是裡邊你想銷燬另外一個執行緒裡的定時器造成的。請檢查。

另外鎖mutex在等待的時候,被定時器中斷也是一個可能。

27樓:海獅

你這個問題不好改,是你學習的時候沒有注意到:

qt的手冊裡面寫了:

每一個qobject(所有的介面及元素)僅在它所在的執行緒中生存。

所以估計你是在介面中建立了qhttp,然後會導致此錯誤,無法修正,因為一開始就錯了。

不允許在介面中這樣做!

28樓:匿名使用者

infinite wait has timed out.

我在編寫幾百行以上的c++程式時遇到的困惑

29樓:

呵呵,樓主這個問題說簡單也很簡單——多寫多看別人優秀**,積累經驗,知道什麼時候該子函式什麼時候不該就好了

說複雜也複雜,因為你所問的問題也是無數世界頂級程式設計師和大師們都在**卻很難達成標準答案的問題,就是源**的組織方式和程式設計規範。

如果樓主是希望深入研究的話建議你看看《**大全》。這個的經典程度就不用我多介紹了。

如果只是隨便問問有什麼技巧的話,那就很多拉,根據具體情況決定。比如可以用結構體或者物件導向裡面的物件來傳遞以減少引數數量,用陣列儲存引數再傳遞指標,程式不太大的話用全域性變數(慎用)傳遞。當然最根本的引起問題的原因我覺得還是你的函式設計的不合理,不該子函式的地方子函式了,不用傳或者可以改變形式少傳的引數被傳遞了。

這個多積累經驗,看看大師**就好了。

祝你好運,希望能幫助你

30樓:crazy_小豬

可以把大家一起使用的變數宣告成成員變數。但是有缺點,就是耦合性會增加還有就是你的設計邏輯是不合理的,你說的這句話:

「還有種情況是某個子函式沒有用到那麼多引數,但是他呼叫的另一個子函式卻需要某些引數,所以我不得不在原來這個子函式中增加引數,來傳遞給他的子函式」

其實,每個函式實現的過程都是單一的,既然別的函式要想該函式,不得不在原來的子函式中增加引數,那麼說明這個函式不適合呼叫這個子函式。

31樓:小白範

一定要用物件導向的思維去設計,這樣才能把繁雜的資料分離開來。

以前:程式=演算法+資料結構

所有的資料都是在同一個層面上。

後來:物件=演算法+資料結構

程式=物件+物件+。。。

在類裡面,很好的把資料進行了封裝。有些做成類的成員變數,相當於類內部的「全域性變數」,成員函式訪問時不需要傳遞引數的。

C語言程式,一個C語言程式

include define n 2010 int head n way n du n rudu n n,f n len,fa n struct recda 2000000 inline void add int a,int b,int c void search int a bool read i...

簡單的C程式,一個簡單的C程式

void creat tree b 因為傳的是地址,所以,這裡是 b int main c沒有引用的。因為你這裡create tree b 這裡b是形參,棧變數,在函式呼叫結果後棧變數會被 所以造成了沒辦法把值傳出來。可以用t的地址來傳.改一下create tree pb 裡面也做相應的修改。這樣 ...

C程式的問題,一個C程式的問題

void snake 定義一個2維陣列並且賦值為0 int i 0,j 0,t 2,n,m i,j分別表示行和列printf 輸出蛇行方陣 n printf 請輸入方陣的階數 fflush stdin scanf d n printf 請輸入方陣的起始值 fflush stdin scanf d t...