![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c基础
文章平均质量分 64
walterby
这个作者很懒,什么都没留下…
展开
-
Makefile汇总
= 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值原创 2014-07-01 13:08:49 · 298 阅读 · 0 评论 -
memset memcpy memcmp
/* memset & memcpy &memcmp example */#include#includestruct { char name[40]; int age;} person, person_copy;int main(void){ char str[] = "almost every programmer should know mem原创 2014-07-15 15:52:59 · 411 阅读 · 0 评论 -
gcc
一. 常用编译命令选项假设源程序文件名为test.c。1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。2. 选项 -o用法:#gcc test.c -o test作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名转载 2013-07-08 13:40:40 · 276 阅读 · 0 评论 -
test code for make green marker
/* Date: 2014/07/10 Purpose: test code for verify_grn_flag() */#include#include#define GRN_KEYS_CNT 3char *grn_keys[GRN_KEYS_CNT] = { "Model:", "Serial Number:原创 2014-07-15 16:03:14 · 612 阅读 · 0 评论 -
c另类代码
编译器测试javascriptcthoughtworks语言目录(?)[-]开始程序第一步把for变成while第六步移除常量程序命名伪装欺诈文档和注释程序设计混乱你的代码测试其它下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才转载 2013-07-29 15:10:40 · 840 阅读 · 0 评论 -
c编译整理
/* hello.c */#includevoid hello(const char *name) { printf("Hello %s\n", name); }原创 2014-07-14 15:20:08 · 428 阅读 · 0 评论 -
GCC objdump
反汇编:把目标代码转为汇编代码的过程,也可以说是把机器语言转换为汇编语言代码、低级转高级的意思,常用于软件破解(例如找到它是如何注册的,从而解出它的注册码或者编写注册机)、外挂技术、病毒分析、逆向工程、软件汉化等领域。学习和理解反汇编语言对软件调试、漏洞分析、OS的内核原理及理解高级语言代码都有相当大的帮助,在此过程中我们可以领悟到软件作者的编程思想。总之一句话:软件一切神秘的运行机制全在反汇编代原创 2013-12-13 14:40:28 · 540 阅读 · 0 评论 -
c练习题
1.一些c题目/* calculate the date through the count of day and birthday eg:birthday:1777/4/30 day:5343 => 1971/12/5 */#includeint Isleapyear(int year){ return (year % 400 == 0 || (year原创 2013-11-29 15:39:07 · 589 阅读 · 0 评论 -
make编译出错问题
1.error: storage class specified for parameter函数声明少“;”,(一个分号300多个错误,检查到吐。)原创 2013-07-29 10:08:51 · 1671 阅读 · 0 评论 -
vim技巧
有时候从 web 上复制一段代码要粘贴到 vim 中,因为启用了 set smartindent 选项,粘贴后的缩进完全乱套。可用paste选项禁用或启用smartindent选项。虽然前后麻烦些,至少问题解决了,smartindent还是不能缺的。在粘贴文本到vim前,先::set paste完了再恢复::set paste!转载 2013-05-22 10:45:55 · 355 阅读 · 0 评论 -
gdb
本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令解释示例file 加载被调试的可执行转载 2013-07-09 18:16:14 · 485 阅读 · 0 评论 -
网络IPC:套接字
1.套接字是通信端点的抽象。 与应用程序要用文件描述符访问文件一样,访问套接字也需要用套接字描述符。套接字描述符在UNIX系统是用文件描述符实现的。要创建一个套接字,可以调用socket函数。#includeint socket(int domain,int type,int protocol);//返回值:成功返回文件(套接字)描述符,出错返回-1。a)参数domain确定转载 2012-07-17 13:41:27 · 346 阅读 · 0 评论 -
判断大小端
总结一下两种方法: 1.直接根据地址判断#include#include#include#includestatic int isBigEndian(){ uint32_t thisx = 0x04030201; uint8_t *thisp = (uint8_t *)&thisx; return (*thisp == 1) ? 1:0;}int原创 2012-07-17 10:15:43 · 1101 阅读 · 0 评论 -
__attribute__ mechanism
坑原创 2012-07-25 10:07:34 · 194 阅读 · 0 评论 -
system函数
判断shell脚本正常执行结束的健全代码如下:01#include 02#include 03#include 04#include 05 06intmain()07{08 pid_t status;09 10 status = system("./test.sh");11 12 if(-1 == status)13 {14原创 2014-07-09 14:16:32 · 425 阅读 · 0 评论 -
vim
记录一些比较好的vi/vim 使用学习的网站,这样就不用没目的的去go了 1:vim dochttp://vimcdoc.sourceforge.net/doc/ 2:vim tips (搜索关键词就能自动补全)http://vim.wikia.com/wiki/Vim_Tips_Wiki 3:Best of Vi转载 2013-05-06 10:42:52 · 372 阅读 · 0 评论 -
用GDB调试程序(三)
四、维护停止点上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。 clear 清除所有的已定义的停止点。 clear clear 清除所有设置在函数上的停止点。 cle转载 2012-07-20 10:15:57 · 697 阅读 · 0 评论 -
用GDB调试程序(四)
查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令: backtrace bt 打印当前的函数调用栈的所有信息。如:转载 2012-07-20 10:17:55 · 646 阅读 · 0 评论 -
域名解析
#include#include#include#include#includeint main(int argc,char **argv){ char **pptr; char str[46]; struct hostent *hptr; if(argc < 2) { fprintf(stderr,"usage:doma原创 2012-07-17 12:42:14 · 331 阅读 · 0 评论 -
用GDB调试程序(五)
查看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print / 是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按1转载 2012-07-20 10:18:43 · 348 阅读 · 0 评论 -
用GDB调试程序(六)
七、设置显示选项 GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。 set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: (gdb) f #0 set_quotes转载 2012-07-20 10:21:01 · 816 阅读 · 0 评论 -
用GDB调试程序(二)
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundation, Inc. GDB is free softw转载 2012-07-20 10:14:51 · 491 阅读 · 0 评论 -
用GDB调试程序(一)
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的转载 2012-07-20 09:57:56 · 254 阅读 · 0 评论 -
static用法
//file1.cppstatic int varA; int varB; extern void funA() { …… }static void funB() { …… }//file2.cppextern int varB; // 使用file1.cpp中定义的全局变量 extern int varA; // 错误! var转载 2013-06-19 15:59:06 · 393 阅读 · 0 评论 -
C 文件读写整理
#includeint main(){ FILE *fp; char buf[10] = {0}, *p; int inc; fp = fopen("systune.txt", "r"); if(fp) { //p = fgets(buf, 5, fp); fscanf(fp, "%d", &inc); }原创 2014-07-16 14:54:31 · 552 阅读 · 0 评论