作者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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1590580459.A.D32.html
1F:→ james732: 要不要改用functional language (咦) 05/27 20:16
2F:→ CMJ0121: 改用 variable-length argument 思考應該就可以...吧 05/27 20:53
3F:→ ddavid: 那你不會先在x = x + 1就卡關了嗎XD 05/27 21:55
4F:推 ddavid: 然後void不可以視為元素,這麼想是錯的 05/27 21:57
5F:→ ketrobo: 把隱含的時間軸帶進去看看 05/27 22:07
6F:推 chuegou: 一般函數也可以foo(void) 當初為什麼叫function呢? 05/27 22:50
7F:推 bibo9901: 函數的定義域可以是空集....吧? 05/28 05:35
8F:→ zxzx8059: 以前有void main(void) 05/28 07:07
9F:推 alan23273850: 6樓有回答到你的問題嗎 05/28 07:21
10F:→ suhorng: 3. C++ 可以 C 不行. C 不寫 void 的宣告代表未知 arity 05/28 11:34
11F:推 joey11121: 如果想了解進階觀念的話,去看jserv的「你所不知道的C 05/28 12:17
12F:→ joey11121: 語言」中的規格書探討 05/28 12:17
14F:→ joey11121: iew 05/28 12:18
15F:→ joey11121: 大致上是說有void的才是正確的 05/28 12:19
17F:→ pandaren0905: 謝謝joery大大的回答 05/28 14:07
18F:推 a58524andy: 函數定義域為空代表常數ㄅ 不過這離題了 05/28 17:00
19F:→ a58524andy: 總之就只是名詞就這麼多 偶爾有點歧義也是很正常的 05/28 17:00
20F:推 lc85301: 所以數學上像 main 這樣要叫什麼 05/28 17:33
21F:推 ddavid: 其實說常數也是不正確的,因為main()雖然沒直接拿參數,但 05/28 21:13
22F:→ ddavid: code裡面其實卻可以從argv以外的地方拿input,所以不是嚴 05/28 21:14
23F:→ ddavid: 格的常數XD 05/28 21:14
24F:→ ddavid: 事實上這說法也可推到一般有輸入的程式語言function,再加 05/28 21:16
25F:→ ddavid: 上指標等等的存在,本來程式語言的function就是不能直接跟 05/28 21:17
26F:→ ddavid: 數學的function畫上等號的,就只是把詞拿來用罷了 05/28 21:17
27F:→ a58524andy: 我說的是數學上會當沒輸入的函數常數啦XD 05/28 22:43
28F:推 CoNsTaR: 認真建議你先寫 Agda 或 Coq 來熟悉一下直構邏輯(types 05/29 05:19
29F:→ CoNsTaR: )和 pattern calculus(lambda calculus) 05/29 05:19
30F:→ CoNsTaR: 如果你選的是 Agda,應該可以無痛直接接上 Haskell 05/29 05:19
31F:→ CoNsTaR: 在 Haskell 裡就有對電腦程式各種東西做數學的抽象 05/29 05:19
32F:→ CoNsTaR: 掌握了 Haskell 的 GADT 之後就很容易可以掌握 OO 語言了 05/29 05:19
33F:→ CoNsTaR: 語法從 Haskell 跳到 OO 不習慣的話,可以先寫 rust 找一 05/29 05:19
34F:→ CoNsTaR: 下對應 05/29 05:19
35F:推 CoNsTaR: 啊... 我說的對程式的東西做數學的抽象指的就是像你講的 05/29 05:28
36F:→ CoNsTaR: void、IO 之類的東西 05/29 05:28
37F:→ TitanEric: 以為走錯版 05/29 13:35
38F:推 jack82822005: 副程式、函數、純函數本來就有差吧XD 05/31 02:55
39F:→ jack82822005: 概念上有差XD 05/31 02:55