很多天没有用c了,由于ios的课程基础便是c的知识。
于是我不看资料,自己先写了一个C的helloworld,完了编译,突然发现编译中断。
仔细检查发现,stdio.h我写成了studio.h。
操蛋的习惯啊,人总是有一种习惯,就是想当然。
在基础上出了这个问题,不得不深思。还有很多时候都会出现这种想当然的情况,比如我经常遇见的,在贴吧里面,你会发现有一个帖子:偷看本主公洗澡的快来啊!
很多时候你会想当然的看错成偷看本公主洗澡,当然我说的是男同胞们。
说重一点是幻听幻视,就是你潜意识想看见一样,然后突然很相似的一样事物出现,然后你很大几率会看成想看的。
还有一种就是,对自己造成很大影响的,比如初恋,类似初恋的出现,大多数人都会心动,然后出击。这就是大脑的潜意识保护自己或者自以为是的感觉产生的意识,或者说是对自己不熟悉事物的陌生感的一种惧怕吧。
这些习惯多伴随潜意识而生,虽然基本的潜意识都差不多,但由于生活不同,还有很多个时候会出现那种感觉。
所以以后要多留意这些造成失误的潜意识,凡事三思而后行。
程序员要的严谨,就是这些,你做到了么?
以前不懂程序员的严谨到底是什么样的感觉,现在看来,那就是理性的思考,并养成应对潜意识的习惯。
今天就记录一下,gcc的常用语法吧:
用法:gcc [选项] 文件...
选项:
-pass-exit-codes 在某一阶段退出时返回最高的错误码
--help 显示此帮助说明
--target-help 显示目标机器特定的命令行选项 --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]
显示特定类型的命令行选项
(使用‘-v --help’显示子进程的命令行参数)
--version 显示编译器版本信息
-dumpspecs 显示所有内建 spec 字符串
-dumpversion 显示编译器的版本号
-dumpmachine 显示编译器的目标处理器
-print-search-dirs 显示编译器的搜索路径
-print-libgcc-file-name 显示编译器伴随库的名称
-print-file-name=<库> 显示 <库> 的完整路径
-print-prog-name=<程序> 显示编译器组件 <程序> 的完整路径
-print-multi-directory 显示不同版本 libgcc 的根目录
-print-multi-lib 显示命令行选项和多个版本库搜索路径间的映射
-print-multi-os-directory 显示操作系统库的相对路径
-print-sysroot 显示目标库目录
-print-sysroot-headers-suffix 显示用于寻找头文件的 sysroot 后缀
-Wa,<选项> 将逗号分隔的 <选项> 传递给汇编器
-Wp,<选项> 将逗号分隔的 <选项> 传递给预处理器
-Wl,<选项> 将逗号分隔的 <选项> 传递给链接器
-Xassembler <参数> 将 <参数> 传递给汇编器
-Xpreprocessor <参数> 将 <参数> 传递给预处理器
-Xlinker <参数> 将 <参数> 传递给链接器
-save-temps 不删除中间文件
-save-temps=<arg> 不删除中间文件
-no-canonical-prefixes 生成其他 gcc 组件的相对路径时不生成规范化的
前缀
-pipe 使用管道代替临时文件
-time 为每个子进程计时
-specs=<文件> 用 <文件> 的内容覆盖内建的 specs 文件
-std=<标准> 指定输入源文件遵循的标准
--sysroot=<目录> 将 <目录> 作为头文件和库文件的根目录
-B <目录> 将 <目录> 添加到编译器的搜索路径中
-v 显示编译器调用的程序
-### 与 -v 类似,但选项被引号括住,并且不执行命令
-E 仅作预处理,不进行编译、汇编和链接
-S 编译到汇编语言,不进行汇编和链接
-c 编译、汇编到目标代码,不进行链接
-o <文件> 输出到 <文件>
-x <语言> 指定其后输入文件的语言
允许的语言包括:c c++ assembler none
‘none’意味着恢复默认行为,即根据文件的扩展名猜测
源文件的语言
以 -g、-f、-m、-O、-W 或 --param 开头的选项将由 gcc 自动传递给其调用的
不同子进程。若要向这些进程传递其他选项,必须使用 -W<字母> 选项。
报告程序缺陷的步骤请参见:
<file:///usr/share/doc/gcc-4.6/README.Bugs>.