设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
报酬
工算小助手
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
React
›
gcc 是怎么找到 system 函数的定义(实现)的? ...
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
没想明白,现在小朋友学新技术起手式是在 B
›
元宝开始撒钱了,大家捡个午饭钱吧
›
飞牛 NAS 的信任危机, 0Day 漏洞导致用户
›
昨天在 reddit 上发了个开源插件介绍,被骂
›
某东就是这样招人的吗?
今日热议主题
Sneck, 一个用头控制的贪吃蛇游戏,颈椎有
2026 年了,前端开发还能学点啥
大家有用百炼编排过工作流的吗?
Moltbook 要把事情高大: AI 机器人的"身份
网页展示 k 线图用哪个组件比较好
求推荐一款机械键盘,预算 200-500,日常办
AI start up 急需两名 App 开发工程师 [远
适合个人购买的云主机,包含阿里云,香港云
腾讯元宝发红包,随便一点就有 5 元
10 万左右,每日通勤 100 公里,有什么好介
显示全部
|
最新评论
15 条回复
·
606 次点击
11#
ysc3839
小成
2024-3-20 16:06:41
是 implicit-function-declaration ,直接用你给的参数类型作为定义了
12#
leonshaw
小成
2024-3-20 16:42:30
@rookiemaster 当作隐式函数声明 int system(); 按 ABI 调用就行了
13#
nuk
小成
2024-3-20 16:46:40
隐式声明,理论上默认的函数声明会是 int f(void),但是 gcc 实际上传递了参数,而且因为 X64 是 fastcall ,前几个参数用寄存器传递,所以就算参数数量对不上,也不会崩溃。你可以试试这样,一样不会崩溃:
system("echo hello world");
system("echo hello world", "echo hello world");
14#
cnbatch
初学
2024-3-20 19:50:26
“隐式声明与实际调用的时候参数对不上”
不是对不上,而是因为 C 语言的特性。
在其它编程语言当中(比如 C++、Java 、C# ),int system();表示该函数不接受参数传入。
但 C 语言不同,int system(); 表示参数情况未知,是个笼统的声明。
而 int system(void) 才是其它编程语言 int system();的意思。
这里有比较详细的说明,在页面尾部 Note 那一节,句子以“Unlike in C++”开头:
https://en.cppreference.com/w/c/language/function_declaration
15#
zeroxia
小成
2024-3-23 12:34:10
@nuk 到底默认是 `int f()` 还是 `int f(void)`?
16#
chisato
小成
2024-7-12 13:22:23
#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <limits.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
1
2
/ 2 页
浏览过的版块
奇思妙想
iPhone
物物交换
二手交易
OpenAI
虚拟现实
计算机
Apple
全部
返回顶部