作者pandaren0905 (熊貓小弟)
看板C_and_CPP
標題[問題] main()和main(void)的差別
時間Wed May 27 19:54:17 2020
已爬文看過main()系列文章,
但一直困擾我很久的一個問題:
根據函數的定義是定義域非空X裡所有元素x都要有唯一的值y來在對應域Y對應。那麼請問
問題來了
C和C++中,
1.為何主程式可以不用丟元素進去?主程式不也是一種函數嗎?
2.如果把void指令也看成一個元素,是否就滿足函數的定義了?
3.main()是否為main(void)的化簡呢?
數學系的我剛學程式好難接受啊
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.162.72 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1590580459.A.D32.html
→ james732: 要不要改用functional language (咦) 05/27 20:16
→ CMJ0121: 改用 variable-length argument 思考應該就可以...吧 05/27 20:53
→ ddavid: 那你不會先在x = x + 1就卡關了嗎XD 05/27 21:55
推 ddavid: 然後void不可以視為元素,這麼想是錯的 05/27 21:57
→ ketrobo: 把隱含的時間軸帶進去看看 05/27 22:07
推 chuegou: 一般函數也可以foo(void) 當初為什麼叫function呢? 05/27 22:50
推 bibo9901: 函數的定義域可以是空集....吧? 05/28 05:35
→ zxzx8059: 以前有void main(void) 05/28 07:07
推 alan23273850: 6樓有回答到你的問題嗎 05/28 07:21
→ suhorng: 3. C++ 可以 C 不行. C 不寫 void 的宣告代表未知 arity 05/28 11:34
推 joey11121: 如果想了解進階觀念的話,去看jserv的「你所不知道的C 05/28 12:17
→ joey11121: 語言」中的規格書探討 05/28 12:17
→ joey11121: iew 05/28 12:18
→ joey11121: 大致上是說有void的才是正確的 05/28 12:19
→ pandaren0905: 謝謝joery大大的回答 05/28 14:07
推 a58524andy: 函數定義域為空代表常數ㄅ 不過這離題了 05/28 17:00
→ a58524andy: 總之就只是名詞就這麼多 偶爾有點歧義也是很正常的 05/28 17:00
推 lc85301: 所以數學上像 main 這樣要叫什麼 05/28 17:33
推 ddavid: 其實說常數也是不正確的,因為main()雖然沒直接拿參數,但 05/28 21:13
→ ddavid: code裡面其實卻可以從argv以外的地方拿input,所以不是嚴 05/28 21:14
→ ddavid: 格的常數XD 05/28 21:14
→ ddavid: 事實上這說法也可推到一般有輸入的程式語言function,再加 05/28 21:16
→ ddavid: 上指標等等的存在,本來程式語言的function就是不能直接跟 05/28 21:17
→ ddavid: 數學的function畫上等號的,就只是把詞拿來用罷了 05/28 21:17
→ a58524andy: 我說的是數學上會當沒輸入的函數常數啦XD 05/28 22:43
推 CoNsTaR: 認真建議你先寫 Agda 或 Coq 來熟悉一下直構邏輯(types 05/29 05:19
→ CoNsTaR: )和 pattern calculus(lambda calculus) 05/29 05:19
→ CoNsTaR: 如果你選的是 Agda,應該可以無痛直接接上 Haskell 05/29 05:19
→ CoNsTaR: 在 Haskell 裡就有對電腦程式各種東西做數學的抽象 05/29 05:19
→ CoNsTaR: 掌握了 Haskell 的 GADT 之後就很容易可以掌握 OO 語言了 05/29 05:19
→ CoNsTaR: 語法從 Haskell 跳到 OO 不習慣的話,可以先寫 rust 找一 05/29 05:19
→ CoNsTaR: 下對應 05/29 05:19
推 CoNsTaR: 啊... 我說的對程式的東西做數學的抽象指的就是像你講的 05/29 05:28
→ CoNsTaR: void、IO 之類的東西 05/29 05:28
→ TitanEric: 以為走錯版 05/29 13:35
推 jack82822005: 副程式、函數、純函數本來就有差吧XD 05/31 02:55
→ jack82822005: 概念上有差XD 05/31 02:55