作者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/cn.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