
c程序设计
A.Crocodile
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用C实现任意一年的日历
直接奉上代码。不过没有把月份分开,也没标明。虽然有些瑕疵,但当自己设计的算法跑起来的时候还是很开心~以后会完善 ———一个正在努力的菜鸟,一个未来的程序员~include原创 2017-04-25 22:13:30 · 362 阅读 · 0 评论 -
C里的递归算法
今天为了一个递归的算法想了一个下午,收获许多。#include int fish(int n,int x);int main(){ int i = 0; int x = 0; do { i++; x = i*5+1; if(fish(5,x)) {原创 2017-04-26 23:40:14 · 313 阅读 · 1 评论 -
C语言中static关键字的作用详解,全网最透彻
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容复制代码代码如下:char a = 'A'; // global variablev...原创 2018-07-09 09:41:29 · 45749 阅读 · 13 评论 -
C语言中函数参数的省略号
C++允许定义形参个数和类型不确定的函数。例如,C语言中的标准函数printf便使用这种机制。在声明不确定形参的函数时,形参部分可以使用省略号“…”代替。“…”告诉编译器,在函数调用时不检查形参类型是否与实参类型相同,也不检查参数个数。例如:void ConnectData(int i,...)在上面的代码中,编译器只检查第一个参数是否为整型,而不对其他参数进行检查。对于可变参数的函数,需要进行特...转载 2018-07-05 14:59:52 · 1106 阅读 · 0 评论 -
枚举类型详解
注:以下全部代码的执行环境为VC++ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7 在此,我们定义一种新的数据类型,希望...转载 2018-07-05 15:51:51 · 309 阅读 · 0 评论 -
详解C中volatile关键字
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;void ...转载 2018-07-05 16:46:36 · 195 阅读 · 0 评论 -
Linux编程之自定义消息队列
我这里要讲的并不是IPC中的消息队列,我要讲的是在进程内部实现自定义的消息队列,让各个线程的消息来推动整个进程的运动。进程间的消息队列用于进程与进程之间的通信,而我将要实现的进程内的消息队列是用于有序妥当处理来自于各个线程请求,避免一窝蜂的请求而导致消息的异常丢失。想想socket编程里的listen函数吧,里面要设置一个队列长度的参数,其实来自网络的请求已经排成一个请求队列了,只是这个队列是系统...转载 2018-07-13 14:48:21 · 287 阅读 · 0 评论 -
二维数组作为形参,传递二维数组的值
二维数组作为形参,传递二维数组的值void trfind(int (*Array)[3]);void trfind(int (*Array)[3]){ int a[][3] = {1, 2, 3, 4, 5, 6}; int i, j; for (i=; i<2; i++) for (j=0; j<3; j++) ...原创 2019-07-05 09:32:51 · 319 阅读 · 0 评论