-
静态函数
默认情况下函数的声明是extern的,静态函数只是在声明他的文件当中可见,但是不能被其他文件所用。
示例
#include<stdio.h>
void display();
static void staticdis();
int main(){
display();
staticdis();
return 0;
}
//#include<stdio.h>
void display(){
staticdis();
printf("display() has been called \n");
}
static void staticdis()
{
printf("staticdis() has been called\n");
}
静态函数的好处:
1)其他文件中可以定义相同名字的函数,不会发生冲突;
2)静态函数不能被其他文件所用;
疑问:当把两个文件写在同一个函数中的时候,函数都能正常执行,问过老师后,当把文件分开使用时,不能正常编译,不明白静态函数不能被其他文件应用的意思
字符串常量
用字符串常量初始化指针和数组
char *p = "breadfruit"
#include<stdio.h>
#include<string.h>
int main(){
char *p = "this is a example";
char a[] = "gooseberry";
strncpy(a,"black",5);
printf("%s\n",p);
printf("%s\n",a);
return 0;
}
对字符串可以以数组的形式进行操作。
强制数据类型转换特性
1,两个数据类型不同的数据进行运算的时候,先要转换为相同的类型,较低类型转换为较高类型,然后再参加运算:int-->unsigned-->long-->double。
2,赋值中的类型转换
赋值时的类型转换属于强制转换
- 无符号整数
#include<stdio.h>
int main(){
unsigned a,b;
int i,j;
a = 65535;
i = -1;
j = a;
b = i;
printf("(unsigned)%u-->(int)%d\n",a,j);
printf("(int)%d-->(unsigned)%u\n",i,b);
}
不能进行数据转换
指针特性
-
数据指针
以指针直接操作内存多发生一下情况:
1)某I/O芯片被定位在CPU的储存空间而非I/O空间,而且寄存器对应于某特定地址;
2)两个CPU之间以双端口RAM通信,CPU需要在双端口RAM的特定单元,书写内容已在对方CPU产生中断;
3)读取在ROM或FLASH的特定单元所烧录的汉字和英文字模。
Shell的复习
- 自己编写了尝试编写了一个,C语言编译和运行同时完成的一个shell脚本
#!/bin/bash
#opera.sh
gcc $1 -o c
./c
输入格式为:$./opera.sh test.c
shell:查看参数
#!/bin/bash
#file.sh
echo "Command received $# params."
echo "Command:$0"
echo "Arg1:$1"
echo "Arg2:$2"
echo "Arg3:$3"