易网时代-编程资源站
Welcome
首页
/
软件开发
/
C语言
C中位域结合对齐(pragma)的例子及解释
2017-02-06
84
C中位域结合对齐(pragma)的例子及解释2013-06-07有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许...
系统级编程语言性能比较
2017-02-06
71
系统级编程语言性能比较2013-11-16C/C++已经统治系统编程很久,除了ObjectiveC之外语言都无法获得很高的关注。有人用多种系统级语言编写了同样的地图生成工具来测试他们的性能,包括D(DMD,LDC,GDC)、Go(GCC-Go,6g)、Haskell(GHC)和Rust。相比C/C++,这些语言都原生支持了诸如垃圾回收这些高级特性,也因此无一能达到C/C++的运行速度。其中表现最好的是基于LLVM的D语言编译器LDC,与同样基于LLVM的C...
Linux下的串口编程:struct termios结构体
2017-02-06
97
Linux下的串口编程:struct termios结构体2013-11-16termios结构体说明termios结构体中,该结构体一般包括如下的成员:tcflag_t c_iflag;tcflag_t c_oflag;tcflag_t c_cflag;tcflag_t c_lflag;cc_t c_cc[NCCS];其具体意义如下c_iflag:输入模式标志,控制终端输入方式,具体参数如下所示。c_iflag参数表键值说明IGNBRK 忽略BREA...
C实现一个简单的线程池
2017-02-06
57
C实现一个简单的线程池2013-11-16//threadpool.h#ifndef __THREADPOOL_H__#define __THREADPOOL_H__#include<pthread.h>typedef void* (*task_fun)(void*);//用链表来维护等待任务typedef struct threadtask{//任务的执行函数task_fun task;//执行函数的参数void* arg;//下一节点str...
用C语言得到Linux主机的IP地址
2017-02-06
61
用C语言得到Linux主机的IP地址2013-11-16#include <stdio.h>;#include <sys/types.h>;#include <sys/socket.h>;#include <sys/ioctl.h>;#include <netinet/in.h>;#include <net/if.h>;#include <net/if_arp.h>;#in...
小心C语言时间函数陷阱
2017-02-06
87
小心C语言时间函数陷阱2013-11-16 ibm Jedilyn在编写C语言的应用程序时,为了获取或者打印一些跟时间有关的信息,我们经常会使用到C语言自带的一 些时间函数,诸如:time、localtime、ctime、mktime和asctime等。但你可能没有注意到这里面含有一些有 趣的现象,先来看一个例子:1 #include <stdio.h>2 #include <time.h>34 int main ()5 {67 t...
C语言几道位移运算题
2017-02-06
54
C语言几道位移运算题2013-11-16 Justany_WhiteSnow 1 << -11 << -1是多少?字面上看1左移-1位,似乎是1右移1位的意思。但实际结果却是-2147483648,而-2147483648 = - 2 31。也就是说实际上1 << -1等同 于:1 << 31为什么?╮(╯_╰)╭没有什么为什么,就是这样定义的,可以说为了配合 Javascript中整型是32位的吧。也就是说...
抽取VS文件组成类GCC的编译器并编译C程序为dll动态链接库
2017-02-06
61
抽取VS文件组成类GCC的编译器并编译C程序为dll动态链接库2013-11-16用惯了linux下的GCC编译工具,倒喜欢起命令行的方式编译链接C程序,居然还发现我装的VS工具没看到直接编译C程序的工具(我不太熟悉这个)。VS的编译文件命令是cl,链接命令是link。参考了网上资料,采用提取VS的编译器文件组成一个可以命令行方式编译程序的工具。以下为步骤:1,在自己目录创建文件夹,如:D:/vctool;2,将VS安装目录下的VC目录下的bin、lib、...
Objective-C中的协议和委托
2017-02-06
65
Objective-C中的协议和委托2013-11-16Objective-C中的协议(Protocol)类似于常用的接口,协议(Protocols)中定义的方法,在类中实现。@protocol MyFirstProtocol- (void)myFirstProtocolMethod;@end在iPhone OS中,协议(Protocol)通常用来实现委托对象(Delegate Object)。委托对象(Delegate Object)一般用来自己定义行为...
object-C中的数据类型转换
2017-02-06
96
object-C中的数据类型转换2013-11-16不同类型数据间按照下面关系的从左到右(从低到高)自动转换,如果这些数据类型进行混合运算,运算中不同类型的数据先转化为同一类型,然后进行运算,转换从左到右自动转换,如表2-3所示。表2-3 类型转换先后顺序表操作数1类型操作数2类型转换后的类型_Bool、char、short int、枚举类型intint_Bool、char、short int、枚举类型、intlong intlong int_Bool、c...
Objective-C的数据类型
2017-02-06
77
Objective-C的数据类型2013-11-16Objective-C数据类型可以分为:基本数据类型、对象类型和id类型。基本数据类型有:int、float、double和char类型。对象类型就是类或协议所声明的指针类型,例如:NSAutoreleasePool * pool,其中NSAutoreleasePool是一个类,NSAutoreleasePool *是它指针类型。id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型,所以刚才...
linux C 中的volatile使用
2017-02-06
69
linux C 中的volatile使用2013-11-16 DLUTBruceZhang 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的 值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在 寄存器里的备份。下面是volatile变量的几个例子:1). 并行设备的硬件寄存器(如:状态寄存器)2). 一个中断服务子程序中会访问到的非自动变量(Non-autom...
linux c之sigsuspend 进程阻塞
2017-02-06
60
linux c之sigsuspend 进程阻塞2013-11-16 csdn DLUTBruceZhang函数原型:#include <signal.h>int sigsuspend(const sigset_t *mask);作用:用于在接收到某个信号之前,临时用mask替换进程的信号掩码,并暂停进程执行,直到收到信号为止。The sigsuspend() function replaces the current signal mask o...
Linux C实现文件传输
2017-02-06
57
Linux C实现文件传输2013-11-16 csdn DLUTBruceZhangfile_server.c 文件传输顺序服务器示例//////////////////////////////////////////////////////////////////////////////////////<br>// file_server.c文件传输顺序服务器示例///////////////////////////////////////...
Linux C实现生产者消费者问题
2017-02-06
96
Linux C实现生产者消费者问题2013-11-16//信号量---线程间通信//“生产者消费者” 问题#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<semaphore.h>#include<pthread.h>#define msleep(x) usleep(x*1000)#define PR...
_exit()函数与exit()函数的区别
2017-02-06
78
_exit()函数与exit()函数的区别2013-11-16exit()在结束调用它的进程之前,要进行如下步骤:1.cleanup();2.在atexit()注册的函数;‘exit()’与‘_exit()’有不少区别在使用‘fork()’,特别是‘vfork()’时变得很 突出。‘exit()’与‘_exit()&rsquo...
fcutl函数簇详解
2017-02-06
76
fcutl函数簇详解2013-11-16功能描述:根据文件描述词来操作文件的特性。#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd);int fcntl(int fd, int cmd, long arg);int fcntl(int fd, int cmd, struct flock *lock);[描述]fcntl()针对(文件)描述符提供控制。参数fd...
C语言中的typedef详解
2017-02-06
60
C语言中的typedef详解2013-11-16typedef声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 t ypedef来编写更美观和可读的代码。所谓美观,意指typedef能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。typedef使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于 ""typedef""关键字右边。例如:typedef in...
C语言实现二进制文件读写详解
2017-02-06
72
C语言实现二进制文件读写详解2013-11-16先介绍函数,我们一共要用到三个函数,fopen,fread,fwrite。二进制读写的顺序是用fopen以二进制方式打开读写文件,然后使用fread和fwrite两个函数将数据写入二进制文件中。下面我们看看一个拷贝程序的源码:Copy.c:#include <stdio.h>#include <stdlib.h>#define MAXLEN 1024int main(int argc,...
C语言中自动变量栈是如何分配的
2017-02-06
75
C语言中自动变量栈是如何分配的2013-11-25大家都知道在c语言的运行过程中,局部变量都是存放在栈中的,且是从高位到低位进行进行空间分配。先看一个程序。很明显,地址从高到低分配,和预计的一样。稍微修改一下,再运行。很明显,从低位到高位!!!...
<<
21
22
23
24
25
26
27
28
29
30
>>
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图