Re: [語法] 呼叫函數

看板C_and_CPP (C/C++)作者 (隨機數能吃嗎?)時間16年前 (2009/05/03 16:20), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《littleshan (我要加入劍道社!)》之銘言: : 寫程式不要這樣縮排,很容易以為你的 printf 也是迴圈的一部份 : 一般的良好寫法是這樣: : for(i = 0; i < 5; i++) : lcga(); : : printf("%d\n", Lcg_seed); : : return 0; : : } 了解,我會改進寫法 : [deleted] : : 我仿書上把lcg_seed在全區宣告,但是不知道為什麼 : : 呼叫lcga,在lcga列印lcg_seed是 0;在main列印lcg_seed是12345不會變 : : 所以試著用 static ,結果可以,但是變得無法在main print....(紅色那行) : 應該是其它地方寫錯了,請附上完整程式碼 怪了..剛去把static int lcg_seed 丟到全域 int lcg_seed去,又變得可以跑了 : 因為 int 一般來說大小為 32bit 儲存範圍是 -2147483648 ~ 2147483647 : 你的計算已經超過了它的範圍,當然會得到錯誤的結果 : C99 的標準有提供 64bit 的整數型別 int64_t : 如果你的 compiler 有支援,這是最簡單的解決方法 有了有了!!感謝!!^^ 忘了有溢位問題,Maple寫久了都忘了這件事(Maple會自動處理溢位問題) : 它可能用了 64bit 整數 : 或是自己去處理大數運算 : : 是否直接用.txt寫好,存成.c 就可以用#include "lcga.c"呼叫了呢? : : 感恩 : 不行,這不是正確用法。 : 正確的方法是把函式的宣告寫在 .h 內,函式的實作寫在 .c 內, : 然後讓你的主程式去連結函式的實作 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.128.31

05/03 16:21, , 1F
你的變數週期與範圍需要去翻翻書
05/03 16:21, 1F
※ 編輯: chrisjon 來自: 123.195.128.31 (05/04 02:58) ※ 編輯: chrisjon 來自: 123.195.128.31 (05/04 03:01)
文章代碼(AID): #19_LEm5W (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
2
4
文章代碼(AID): #19_LEm5W (C_and_CPP)