標(biāo)題: c語言語法和tortoise [打印本頁]

作者: 51黑tt    時(shí)間: 2016-3-6 02:49
標(biāo)題: c語言語法和tortoise
     在學(xué)校學(xué)的c語言,的確沒有什么大用,等真正看到項(xiàng)目代碼。只會(huì)為自己以前寫的代碼感到自卑。我自己也很垃圾。≡S多疑問。
     隨便寫幾個(gè)吧。#ifdef ,#ifndef  , #endif   , #if defined  ,   #elif   , union  enum,extern,static,我感到有點(diǎn)恐怖。你越怕的越是有用的
   預(yù)編譯項(xiàng)目中用到真多。要搞清楚。
//a.h  頭文件
#ifndef A      //可以換成a_h   或者 abc
#define A      //可以換成a_h   或者 abc

int  AorB(int  a)
{ return a;}
#endif
//  b.h頭文件
#include "a.h"
int CorD(int a)
{ return AorB(a);}

//first.c   主文件
#include "a.h"
#include "b.h"

int main()
{int a = 0;
int b = AorB(a);
int c = CorD(b);
printf("a=%d,b=%d,c=%d\n",a,b,c);

return 0; }
  在linux下 gcc -o  first  first.c
一開始#include<a.h>   到a.h頭文件去了,遇到#ifndef  A,滿足條件,所以就把#ifndef A和#endif 之間的東西包含進(jìn)來,也即定義了define A,A標(biāo)志,和AorB();A標(biāo)志相當(dāng)于信號(hào)量。。沒有定義我就定義信號(hào)量,同時(shí)拿完東西。
#include<b.h>  到b.h投文件中,又#include<a.h>,到 a.h中,遇到#ifndef A,  發(fā)現(xiàn)不滿足條件。所以不執(zhí)行#ifndef A和#endif 之間..也就是a.h只包含一次。到下的CorD()
如果不#ifndef A和#endif 之間則a.h被包含兩次,出錯(cuò)。。error    這是為了防止頭文件被重復(fù)包含。
#ifndef <標(biāo)識(shí)>
#define <標(biāo)識(shí)>
......
#endif
<標(biāo)識(shí)>在理論上來說可以是自由命名的,但每個(gè)頭文件的這個(gè)“標(biāo)識(shí)”都應(yīng)該是唯一的。標(biāo)識(shí)的命名規(guī)則一般是頭文件名全大寫,前后加下劃線,并把文件名中的“.”也變成下劃線,如:stdio.h
#ifndef _STDIO_H_
#define _STDIO_H_
......
#endif

#if defined A  和#ifdef A  其實(shí)是一回事。。還有#if !defined A  和#ifndef  A  只是#if defined 可以多個(gè)標(biāo)識(shí)符。。例如:#if defined A || defined B   相當(dāng)于
# ifdef A
..........
#ifdef B
.........
注意::||是或者邏輯運(yùn)算    |位運(yùn)算  或   

#elif    很恐怖  我以前都沒有見過。   
#ifdef  A
   。。。。
#elif   B
。。。。
#else
。。。。
相當(dāng)與
if()
。。。。
else if()
。。。。
else。。。。

static 講過了,,,隱藏的意思。。全局變量,   初始化。。0.。。
extern   引進(jìn)外文件終端變量或者函數(shù)。。。
//a.c
#include "stdio.h"
void fun(void)
{printf("fun is here\n");}
//hello.c
extern void fun(void);
int main(int argc, char* argv[])
{printf("Hello World!\n");
printf("hello!!\n");
fun();
return 0;}


union  共用體類型。。
union data
{  int i;                                                                  
  char ch;
float  f;}
  union  data a;
a.i=278;
a.ch='D';
a.f=5.789;
最后共用體變量中的值是5.789.
注意::共用體的不同結(jié)構(gòu)體。某一個(gè)時(shí)刻只存共用體的一種數(shù)據(jù)值,。結(jié)構(gòu)體所有的成分都存儲(chǔ)。分配共用體的存儲(chǔ)空間大小至少要存儲(chǔ)最大數(shù)據(jù)所需的空間量。。。





union  exx
{
int a,b;
struct  {
int c,d;
}lpp;
} e={10};                  //第一個(gè)格子里是10

枚舉類型:
#include "stdio.h"
void main()
{ enum colorname{red,yellow,blue,white};
enum colorname color;
for(color=red;color<=white;color++)
  switch(color)
{
  case red:  printf("red\n"); break;
case yellow:  printf("yellow\n"); break;
  case blue:  printf("blue\n"); break;
  case white:  printf("white\n"); break;
}
}


tortoiseSVN客戶端和visual SVN Server服務(wù)器
1.1  VisualSVN Server的安裝

1.2 TortoiseSVN的安裝

1.3 TotoiseSVN的基本使用方法
1.3.1 簽入源代碼到SVN服務(wù)器
假如我們使用Visual Studio在文件夾StartKit中創(chuàng)建了一個(gè)項(xiàng)目,我們要把這個(gè)項(xiàng)目的源代碼簽入到SVN Server上的代碼庫中里,首先右鍵點(diǎn)擊StartKit文件夾,這時(shí)候的右鍵菜單如下圖所示:






如上圖所示,好了,源代碼已經(jīng)成功簽入SVN服務(wù)器了。這時(shí)候團(tuán)隊(duì)成員就可以遷出SVN服務(wù)器上的源代碼到自己的機(jī)器了。

1.3.2 簽出源代碼到本機(jī)



在上圖中URL of Repository:下的文本框中輸入svn server中的代碼庫的地址,其他默認(rèn),點(diǎn)擊OK按鈕,就開始簽出源代碼了。
說明:上圖中的Checkout Depth,有4個(gè)選項(xiàng),分別是遷出全部、只簽出下一級(jí)子目錄和文件、只簽出文件、只簽出空項(xiàng)目,默認(rèn)的是第一項(xiàng)。上面的例子中,我們也可以使用web的方式訪問代碼庫,在瀏覽器中輸入http://zt.net.henu.edu.cn/svn/StartKit/
這時(shí)候也會(huì)彈出對(duì)話框,要求輸入用戶名和密碼,通過驗(yàn)證后即可瀏覽代碼庫中的內(nèi)容。
搞定!源代碼已經(jīng)成功簽出到剛才新建的StartKit目錄中。
打開StartKit目錄,可以看到如下圖的文件夾結(jié)構(gòu):


一旦你對(duì)文件或文件夾做了任何修改,那么文件或文件夾的顯示圖片機(jī)會(huì)發(fā)生變化。下圖中我修改了其中的二個(gè)文件:


我們已經(jīng)知道怎么將源代碼簽入到SVN服務(wù)器,怎么從服務(wù)器簽出代碼到本機(jī),也簡(jiǎn)單了解了不同狀態(tài)所對(duì)應(yīng)的圖案啦。


1.3.3 提交修改過的文件到SVN服務(wù)器
上面的圖2-2-7中,我修改了位于Model文件中的二個(gè)文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服務(wù)器。
注意:提交源代碼到服務(wù)器時(shí),一定確保本機(jī)的代碼是最新版本,否則可能提交失敗,或者造成版本沖突。
在Model文件夾上點(diǎn)擊右鍵或在Model文件下的空白處點(diǎn)擊右鍵,點(diǎn)擊SVN Commit…彈出下面的窗體:


點(diǎn)擊OK按鈕后,彈出如下圖的窗體:圖2-2-10












歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1