2016-05-09 YongHao Hu
C++
编译的详细过程 以hello.c的源文件为例, C/C++编译, 链接与装载的流程是 gcc -E 将hello.c预处理, 把所有的宏展开, 解析#ifndef, 删除注释等, 得到translation unit(编译单元) hello.i文件. gcc -S 将hello.i编译成汇编文件hello.s gcc -c 汇编器as将hello.s编译成成目标文件hello.o gcc 链接器ld将hello.o链接成可执行文件a.out 继续阅读 »
2016-05-09 YongHao Hu
C++
当我们编译多个文件时, 就会有多个目标文件. 这些模块最后如何形成一个单一的程序呢? 模块间通信 链接器的由来 C/C++模块之间通信的方式有两种, 一种是模块间函数调用, 另一种是模块之间的变量访问. 在编译成目标文件的时候, 由于没有办法得知所引用的外部函数或者外部变量的地址, 所以会先置0. 所以问题本质上就是, 如何得知目标函数或者目标变量的地址呢? 继续阅读 »
2016-09-24 LEo
最近的项目中使用c作为开发语言,由于我之前学习c仅限于看完了几本相关书籍,除了上学期间和找工作时写的一些c程序以及工作中一些关于c的bug fix,在项目中使用c还是第一次,通过这段时间对c的使用,更能体会到下面这句话的含义: 如果没有真正骑过自行车,就算看十本教你学骑自行车的书,最后还是不会骑自行车 继续阅读 »
2013-08-30 Lingxian Kong
今天看《程序员面试宝典》时偶然看到讲数组和指针的存取效率,闲着无聊,就自己写了段小代码,简单分析一下C语言背后的汇编,可能很多人只注重C语言,但在实际应用当中,当出现问题时,有时候还是通过分析汇编代码能够解决问题。本文只是为初学者,大牛可以飘过~ C源代码如下: #include "stdafx.h" int main(int argc, char* argv[]) { char a=1; char c[] = "1234567890"; char *p = "1234567890"; a = c[1]; a = p[1]; return 0; 继续阅读 »
2016-08-20 findneo
C
WHU OJ ,已无法访问 1021乒乓球比赛 ```c include int main() { char i,j,k; for(i='X'; i include int time_elapse(int hour, int minute, int second) { return hour*3600+minute*60+second; } int main() { int n; char t[9],s[9]; int a,b,c,d,e,f; int s1,s2; scanf("%d",&n); for(; n>0; n--) { 继续阅读 »
2018-03-05 YongHao Hu
go
/* #include */ /* #include */ int main(){ char *c = malloc(10); c[0] = 'a'; printf("hi, "); printf("%s\n", c); free(c); return 0; } 为什么这个程序缺了头文件, 依然可以正常编译运行, 并且有正确的结果? 继续阅读 »
2018-05-28 Robin Wen
文/温国兵 PRESS.one 目前提供 「数字身份验证和数字内容签名」。 更多功能陆续开放中。 未来已来。 https://press.one/p/address/v?s=02d1508e49149b17838d86ca9a83ce322baae28c6de8edac72f9d25d8f038a7d1ef3d97a29611529474d6081c2e2d6b50f4dcc85c8c255ecfc4ad32c76b99c3d0&h=93cec5f964299b63f9a0f657c580129f7e1a18dc076a0d8a978e73476099ebe9&a=22d3a65fa68303cdf0f1a38223b9 继续阅读 »
2016-05-07 YongHao Hu
C++
在C++03中, 标准容器提供了begin与end函数 vector v; int a[100]; sort(v.begin(), v.end()); sort(a, a+sizeof(a)/sizeof(a[0])); 为了统一数组跟容器的语法, C++11提供了begin()函数 继续阅读 »
2016-06-21 YongHao Hu
C++
Linux C一站式学习答案 由于网上没有Linux C编程一站式学习的答案, 于是便整理出此book. 欢迎大家增删补漏, 改正错误的地方. 继续阅读 »
2016-04-10 crane-yuan
什么是Check Check是C语言的一个单元测试框架。它提供一个小巧的单元测试接口。测试案例运行在各自独立的地址空间,所以断言失败和代码错误造成的段错误或者其他的信号可以被捕捉到。另外,测试的结果显示也兼容以下这些格式:Subunit、TAP、XML和通用的日志格式。 Check is a unit testing framework for C. It features a simple interface for defining unit tests, putting little in the way of the developer. Tests are run in a separate address space 继续阅读 »