當前位置:首頁 » 編程語言 » 編程c語言介面
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

編程c語言介面

發布時間: 2022-05-20 11:52:14

⑴ c專家編程,數據結構(c語言版),c語言介面與實現

//試編寫一道在單鏈表中數據域值為a的結點之後,
//插入一個新結點的演算法.若原鏈表中無數據域值為a的結點,
//則把新結點插入到表尾.設新結點數據域值為x.小弟初學,謝謝大家啦
//定義結點
typedef
struct
node{
int
data;
struct
node
*next;
}lnode
,*linklist;
//list為單鏈表的表頭指針,插入元素為x
void
insert(linklist
&list,int
x)
{
linklist
p,q;
//生成一個結點其結點值為x
p=(
linklist)malloc(sizeof(lnode));
p->data=x;
p->next=null;
//查找結點值為a的結點,用r指向q的前一個結點
q=list;
while(q!=null&&q->data!=a)
{
r=q;
q=q->next;
}
//插入x
//存在數據域值為a的結點
if(q->data==a)
{
p->next=q->next;
q->next=p;
}
//不存在數據域值為a的結點
else{
q->next=p
}
}

⑵ C語言介面的定義與實現

一個模塊有兩部分組成:介面和實現。介面指明模塊要做什麼,它聲明了使用該模塊的代碼可用的標識符、類型和常式,實現指明模塊是如何完成其介面聲明的目標的,一個給定的模塊通常只有一個介面,但是可能會有許多種實現能夠提供介面所指定的功能。每個實現可能使用不同的演算法和數據結構,但是它們都必須符合介面所給出的使用說明。客戶調用程序是使用某個模塊的一段代碼,客戶調用程序導入介面,而實現導出介面。由於多個客戶調用程序是共享介面和實現的,因此使用實現的目標代碼避免了不必要的代碼重復,同時也有助於避免錯誤,因為介面和實現只需一次編寫和調試就可多次使用

實現
一個實現導出一個介面,它定義了必要的變數和函數以提供介面所規定的功能,在C語言中,一個實現是由一個或多個.c文件提供的,一個實現必須提供其導出的介面所指定的功能。實現應包含介面的.h文件,以保證它的定義和介面的聲明時一致的。

Arith_min和Arith_max返回其整型參數中的最小值和最大值:

int Arith_max(int x, int y) {
return x > y ? x : y;
}
int Arith_min(int x, int y) {
return x > y ? y : x;
}
Arith_div返回y除以x得到的商,Arith_mod返回相應的余數。當x與y同號的時候,Arith_div(x,y)等價於x/y,Arith_mod(x,y)等價於x%y

當x與y的符號不同的時候,C的內嵌操作的返回值就取決於具體的實現:

eg.如果-13/5=2,-13%5=-3,如果-13/5=-3,-13%5=2

標准庫函數總是向零取整,因此div(-13,2)=-2,Arith_div和Arith_mod的語義同樣定義好了:它們總是趨近數軸的左側取整,因此Arith_div(-13,5)=-3,Arith_div(x,y)是不超過實數z的最大整數,其中z滿足z*y=x。

Arith_mod(x,y)被定義為x-y*Arith_div(x,y)。因此Arith_mod(-13,5)=-13-5*(-3)=2

函數Arith_ceiling和Arith_floor遵循類似的約定,Arith_ceiling(x,y)返回不小於實數商x/y的最小整數

Arith_floor(x,y)返回不超過實數商x/y的最大整數

完整實現代碼如下:

arith.c
抽象數據類型
抽象數據類型(abstract data type,ADT)是一個定義了數據類型以及基於該類型值提供的各種操作的介面

一個高級類型是抽象的,因為介面隱藏了它的表示細節,以免客戶調用程序依賴這些細節。下面是一個抽象數據類型(ADT)的規范化例子--堆棧,它定義了該類型以及五種操作:

stack.h
實現
包含相關頭文件:

#include <stddef.h>
#include "assert.h"
#include "mem.h"
#include "stack.h"
#define T Stack_T
Stack_T的內部是一個結構,該結構有個欄位指向一個棧內指針的鏈表以及一個這些指針的計數:

struct T {
int count;
struct elem {
void *x;
struct elem *link;
} *head;
};
Stack_new分配並初始化一個新的T:

T Stack_new(void) {
T stk;
NEW(stk);
stk->count = 0;
stk->head = NULL;
return stk;
}
其中NEW是一個另一個介面中的一個分配宏指令。NEW(p)將分配該結構的一個實例,並將其指針賦給p,因此Stack_new中使用它就可以分配一個新的Stack_T

當count=0時,Stack_empty返回1,否則返回0:

int Stack_empty(T stk) {
assert(stk);
return stk->count == 0;
}
assert(stk)實現了可檢查的運行期錯誤,它禁止空指針傳給Stack中的任何函數。

Stack_push和Stack_pop從stk->head所指向的鏈表的頭部添加或移出元素:

void Stack_push(T stk, void *x) {
struct elem *t;
assert(stk);
NEW(t);
t->x = x;
t->link = stk->head;
stk->head = t;
stk->count++;
}
void *Stack_pop(T stk) {
void *x;
struct elem *t;
assert(stk);
assert(stk->count > 0);
t = stk->head;
stk->head = t->link;
stk->count--;
x = t->x;
FREE(t);
return x;
}
FREE是另一個介面中定義的釋放宏指令,它釋放指針參數所指向的空間,然後將參數設為空指針

void Stack_free(T *stk) {
struct elem *t, *u;
assert(stk && *stk);
for (t = (*stk)->head; t; t = u) {
u = t->link;
FREE(t);
}
FREE(*stk);
}
完整實現代碼如下:

#include <stddef.h>
#include "assert.h"
#include "mem.h"
#include "stack.h"
#define T Stack_T
struct T {
int count;
struct elem {
void *x;
struct elem *link;
} *head;
};
T Stack_new(void) {
T stk;
NEW(stk);
stk->count = 0;
stk->head = NULL;
return stk;
}
int Stack_empty(T stk) {
assert(stk);
return stk->count == 0;
}
void Stack_push(T stk, void *x) {
struct elem *t;
assert(stk);
NEW(t);
t->x = x;
t->link = stk->head;
stk->head = t;
stk->count++;
}
void *Stack_pop(T stk) {
void *x;
struct elem *t;
assert(stk);
assert(stk->count > 0);
t = stk->head;
stk->head = t->link;
stk->count--;
x = t->x;
FREE(t);
return x;
}
void Stack_free(T *stk) {
struct elem *t, *u;
assert(stk && *stk);
for (t = (*stk)->head; t; t = u) {
u = t->link;
FREE(t);
}
FREE(*stk);
}

⑶ c語言如何實現介面功能

一般是在庫文件裡面定義介面標志符及對介面的讀寫程序。必要時可以用匯編語言寫。在用戶程序中,調用這些函數即可。有的CPU指令系統統一通過中斷程序訪問介面。

⑷ 請問誰知道C語言有圖形介面嗎

c有圖形介面,
x-windows都是c編的,你說不能實現圖形么?
c能編程系統,linux/unix都是c語言的,肯定能變游戲,
有專門的圖形函數graphics.h,不過具體沒怎麼用過,只是簡單的圖形輸出用過,我沒變過游戲,但是可以肯定是能的

⑸ c語言函數介面實現

int add(int a, int b) {
return a+b;
}
2.求乘積:
int multiply(int a, int b) {
return a*b;
}
3.求商:
int divide(int a, int b) {
return a/b;
}
4.求差:
int sub(int a, int b) {
return a-b;
}

⑹ 用c語言對計算機的並行介面傳送數據,編程怎麼實現

下面給出一段小程序採用VC 語言編寫的。VC 中對埠的輸入/輸出,可以通過埠I/O函數一inp、一outp來實現,函數包含在conio.h庫中。

軟體開發網

……………..

-outp(0x37a,3);//清理埠 http://www.mscto.com

-outp(0x37a,0);//啟動a/d轉換

Do{datainput=-inp(0x379)&0x80};

While(datainput!=0x80);//等待轉換結束

Data=-inp(0x379);//輸入低四位數據

Data=Data&0x78; 軟體開發網

Data1=Data>>3;

http://www.mscto.com

-outp(0x37a,0x4);//控制16腳為高電平

Data=-inp(0x379);//輸入高四位

Data=Data&0x78;

-outp(0x37a,3);//使A/D停止轉換

Data=Data<<1; http://www.mscto.com

Data=Data|Data1//8位2進制合並

…………//進一步數據處理

⑺ C語言中的介面是什麼它和抽象類有什麼區別

1、在C語言中,或者說所有的編程語言中,介面就是Application
Programming
Interface(API)的中文說法,即一些預先定義的函數,目的是提供應用程序與開發人員基於某軟體或硬體得以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。
在C語言中,介面就是函數。
2、實現一組函數供別人使用,就是提供介面;
使用別人提供的函數,就是調用介面。
C語言的庫函數,比如printf,scanf等,都是介面的一種。

⑻ c 語言的 API 是什麼

API是操作系統為我們准備的函數,你可以加入頭文件,然後調用它們,至於編程實例你可以到:
http://tieba..com/f?kw=erbi_lucifer&fr=itb_favo&fp=favo#
這里是我的一些編程的實例,都有重點講解和程序源代碼……希望你喜歡。O(∩_∩)O哈哈~

各類編程實例……

C語言windows編程基礎之sdk窗體編寫模板
C語言windows編程基礎之創建項目(vs2010)
【C語言】【windows】--獲取文件屬性的信息
【C語言】【windows】--注冊表--開機啟動程序
【C語言】【windows】--聖誕禮物--舞動窗體
【C語言】【windows】--電子時鍾編寫
【C語言】【windows】--記事框編寫
【C語言】【windows】--錄音器編寫
【C語言】【windows】--獲取主機名和IP地址
【C語言】【windows】--進制轉換器

⑼ C語言介面是什麼意思

在C語言中,或者說所有的編程語言中,介面就是Application Programming Interface(API)的中文說法,即一些預先定義的函數,目的是提供應用程序與開發人員基於某軟體或硬體得以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。
在C語言中,介面就是函數。

實現一組函數供別人使用,就是提供介面;
使用別人提供的函數,就是調用介面。
C語言的庫函數,比如printf,scanf等,都是介面的一種。

⑽ C語言如何API編程

1、windows平台提供的api平台,只要開發平台支持api介面,一律都支持,並且效果一樣,不區分語言,好多開發平台的內置控制項及類和函數都是調用了api。
2、應用程序編程介面,簡稱API(Application Programming Interface),就是軟體系統不同組成部分銜接的約定。
隨著軟體規模的日益龐大,我們需要把復雜系統劃分成小的組成部分,編程介面的設計十分重要。程序設計的實踐中,編程介面的設計首先要使系統的職責得到合理劃分。良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。
API之主要目的是提供應用程序與開發人員以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。提供API所定義的功能的軟體稱作此API的實現。API是一種介面,故而是一種抽象。 A reference implementation of an API is the implementation created by the designer of the API, or one which other implementations of the API are expected to be compared against.
例如,圖形庫中的一組API定義調用繪制圖標函數的方式,以於屏幕上顯示圖標。程序中調用,編譯時連接到這組API,執行時便調用API的實現(庫)來顯示圖標。
操作系統的API可用來分配內存或訪問文件。許多系統與應用程序提供API介面與實現,比如圖形系統,資料庫,網路,Web服務,甚至於某些游戲。
一組API經常是一套軟體開發工具包(SDK)的一部分。SDK亦可包含其它工具亦或至於硬體,兩個術語並不完全等同.
API有諸多不同設計。用於快速執行的介面通常包括函數,常量,變數與數據結構。也有其它方式,如通過解釋器,或是提供抽象層以遮蔽同API實現相關的信息,確保使用API的代碼無需更改而適應實現變化。