-
靜態(tài)函數(shù)
默認情況下函數(shù)的聲明是extern的,靜態(tài)函數(shù)只是在聲明他的文件當中可見,但是不能被其他文件所用。
示例
#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");
}
靜態(tài)函數(shù)的好處:
1)其他文件中可以定義相同名字的函數(shù),不會發(fā)生沖突;
2)靜態(tài)函數(shù)不能被其他文件所用;
疑問:當把兩個文件寫在同一個函數(shù)中的時候,函數(shù)都能正常執(zhí)行,問過老師后,當把文件分開使用時,不能正常編譯,不明白靜態(tài)函數(shù)不能被其他文件應(yīng)用的意思
字符串常量
用字符串常量初始化指針和數(shù)組
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;
}
對字符串可以以數(shù)組的形式進行操作。
強制數(shù)據(jù)類型轉(zhuǎn)換特性
1,兩個數(shù)據(jù)類型不同的數(shù)據(jù)進行運算的時候,先要轉(zhuǎn)換為相同的類型,較低類型轉(zhuǎn)換為較高類型,然后再參加運算:int-->unsigned-->long-->double。
2,賦值中的類型轉(zhuǎn)換
賦值時的類型轉(zhuǎn)換屬于強制轉(zhuǎn)換
- 無符號整數(shù)
#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);
}
不能進行數(shù)據(jù)轉(zhuǎn)換
指針特性
-
數(shù)據(jù)指針
以指針直接操作內(nèi)存多發(fā)生一下情況:
1)某I/O芯片被定位在CPU的儲存空間而非I/O空間,而且寄存器對應(yīng)于某特定地址;
2)兩個CPU之間以雙端口RAM通信,CPU需要在雙端口RAM的特定單元,書寫內(nèi)容已在對方CPU產(chǎn)生中斷;
3)讀取在ROM或FLASH的特定單元所燒錄的漢字和英文字模。
Shell的復(fù)習(xí)
- 自己編寫了嘗試編寫了一個,C語言編譯和運行同時完成的一個shell腳本
#!/bin/bash
#opera.sh
gcc $1 -o c
./c
輸入格式為:$./opera.sh test.c
shell:查看參數(shù)
#!/bin/bash
#file.sh
echo "Command received $# params."
echo "Command:$0"
echo "Arg1:$1"
echo "Arg2:$2"
echo "Arg3:$3"