C语言
文章平均质量分 63
苌同学
这个作者很懒,什么都没留下…
展开
-
内核中的unlikey和likely宏的说明
在内核代码中经常会看到unlikely和likely的踪影,他们实际上是定义在linux/compiler中的两个宏,定义如下。#definelikely(x) __builtin_expect(!!(x), 1) // 表示x的值为真的可能性更大#defineunlikely(x) __builtin_expect(!!(x), 0) // 表示x的值为假转载 2014-04-16 10:43:55 · 635 阅读 · 0 评论 -
Windows C 获取mac地址
#include #include #include #include #include static void PrintMACaddress(unsigned char MACData[]){ printf("MAC Address: %02X-%02X-%02X-%02X-%02X-%02X\n", MACData[0], MACData[1],MACData[原创 2014-12-11 12:20:15 · 3706 阅读 · 0 评论 -
通过使用cJSON使得C语言支持JSON数据
由于C语言本身不支持JSON数据,所以我们可以通过cJSON使得C语言支持JSON格式的数据。给出链接就是这里使用说明:下载以上链接的文件,里面有c和h文件,在C代码中包含头文件#include 在编译时,和cJSON.c一起编译,比如这样:gcc test.c cJSON.c -o out下面是代码示例: 构造一个形如{ "username": "ch原创 2014-12-11 11:21:25 · 2824 阅读 · 0 评论 -
C语言单向链表的操作(持续更新中)
struct node{ int data; struct node *next;};struct node* CreateHeadList() //头插法{ int i; struct node* head = NULL; //声明头节点 struct node* new; //声明新节点 for(i = 0;原创 2014-11-29 16:24:29 · 842 阅读 · 0 评论 -
C语言删除字符串中的指定字符串
void replace_string(char * source_str,char * targ_str,char *val)/*将字符串中指定子字符串用指定字符串代替,targ_str 是被替换的,val是替换的字符串*/{ char temp_sstr[513],result[513]; char * p,*q; int len;len=0;q=p=NULL;原创 2014-12-18 11:37:02 · 9372 阅读 · 0 评论 -
Windows C下利用wininet发送http请求
在Windows下,通过使用wininet库发送http请求,以下是代码实例:char szBuffer[1024] = {0};//声明全局变量,作为服务端返回的数据void SendHttpRequest(char ip[], int port, char url[])//参数说明:IP:1.2.3.4 port:40000, url:"/login" {原创 2014-12-11 11:08:50 · 4699 阅读 · 0 评论 -
C语言删除字符串中的某个字符
#include #include int main(){ char *s = "changzhi"; int i, j; char data[100] = {0}; strcpy(data, s); for(i = 0, j = 0; data[i] != '\0'; i++){ if(data[i] != 'h'){原创 2014-12-17 15:00:42 · 11079 阅读 · 1 评论 -
C语言strtok函数的用法
#includeint main(){ char *s = "[123456,abced,bjhu88a]"; char *start = NULL; char *end = NULL; char dest[100] ; char *ss; start = strchr(s, (int)'['); // 找到字符'['的位置原创 2014-12-16 15:17:02 · 6081 阅读 · 0 评论 -
语言中的static 详细分析
C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重复定义的话编译器就会报错。伴随着不同源文件变量和函数之间的相互引用以及相互独立的关系,产生了extern和static关键字。 下面,详细分析一下static关键字在编写程序时有的三大类用法: 一,static全局变量转载 2014-11-28 11:00:33 · 545 阅读 · 0 评论 -
内存分配——静态存储区 栈 堆
一、内存基本构成 可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。 栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的转载 2014-11-27 11:09:26 · 593 阅读 · 0 评论 -
一道C语言题目引发的讨论
首先看一道C语言题目#includestruct testbit{ unsigned char a:3; unsigned char b:2; unsigned char c:3;};int main(){ struct testbit s; unsigned char *p = (char*)&s; *p = 0xac; p原创 2014-08-27 16:50:03 · 739 阅读 · 0 评论 -
C语言中字符数组和字符串指针分析
#include int main(int argc, char *argv[]){ char day[15] = "abcdefghijklmn"; char* strTmp = "opqrstuvwxyz"; printf("&day is %x\n",&day); printf("&day[0] is %x\n",&day[0]); printf("da转载 2014-05-15 10:53:27 · 641 阅读 · 0 评论 -
const char*, char const*, char*const的区别
const char*, char const*, char*const事实上这个概念谁都有只是三种声明方式非常相似:Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to ) cp is a const pointer to char转载 2014-04-15 15:43:03 · 548 阅读 · 0 评论 -
Windows C获取hostname
#include #include int main(){ char szPath[128] = ""; WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); gethostname(szPath, sizeof(szPath)); printf("%s\n", szPath); WSA原创 2014-12-11 12:27:32 · 2232 阅读 · 0 评论