找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1684|回复: 0
打印 上一主题 下一主题
收起左侧

c语言语法和tortoise

[复制链接]
跳转到指定楼层
楼主
ID:107189 发表于 2016-3-6 02:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     在学校学的c语言,的确没有什么大用,等真正看到项目代码。只会为自己以前写的代码感到自卑。我自己也很垃圾!!许多疑问。
     随便写几个吧。#ifdef ,#ifndef  , #endif   , #if defined  ,   #elif   , union  enum,extern,static,我感到有点恐怖。你越怕的越是有用的
   预编译项目中用到真多。要搞清楚。
//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 之间的东西包含进来,也即定义了define A,A标志,和AorB();A标志相当于信号量。。没有定义我就定义信号量,同时拿完东西。
#include<b.h>  到b.h投文件中,又#include<a.h>,到 a.h中,遇到#ifndef A,  发现不满足条件。所以不执行#ifndef A和#endif 之间..也就是a.h只包含一次。到下的CorD()
如果不#ifndef A和#endif 之间则a.h被包含两次,出错。。error    这是为了防止头文件被重复包含。
#ifndef <标识>
#define <标识>
......
#endif
<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h
#ifndef _STDIO_H_
#define _STDIO_H_
......
#endif

#if defined A  和#ifdef A  其实是一回事。。还有#if !defined A  和#ifndef  A  只是#if defined 可以多个标识符。。例如:#if defined A || defined B   相当于
# ifdef A
..........
#ifdef B
.........
注意::||是或者逻辑运算    |位运算  或   

#elif    很恐怖  我以前都没有见过。   
#ifdef  A
   。。。。
#elif   B
。。。。
#else
。。。。
相当与
if()
。。。。
else if()
。。。。
else。。。。

static 讲过了,,,隐藏的意思。。全局变量,   初始化。。0.。。
extern   引进外文件终端变量或者函数。。。
//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.
注意::共用体的不同结构体。某一个时刻只存共用体的一种数据值,。结构体所有的成分都存储。分配共用体的存储空间大小至少要存储最大数据所需的空间量。。。





union  exx
{
int a,b;
struct  {
int c,d;
}lpp;
} e={10};                  //第一个格子里是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服务器
1.1  VisualSVN Server的安装

1.2 TortoiseSVN的安装

1.3 TotoiseSVN的基本使用方法
1.3.1 签入源代码到SVN服务器
假如我们使用Visual Studio在文件夹StartKit中创建了一个项目,我们要把这个项目的源代码签入到SVN Server上的代码库中里,首先右键点击StartKit文件夹,这时候的右键菜单如下图所示:






如上图所示,好了,源代码已经成功签入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的源代码到自己的机器了。

1.3.2 签出源代码到本机



在上图中URL of Repository:下的文本框中输入svn server中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。
说明:上图中的Checkout Depth,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入http://zt.net.henu.edu.cn/svn/StartKit/
这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。
搞定!源代码已经成功签出到刚才新建的StartKit目录中。
打开StartKit目录,可以看到如下图的文件夹结构:


一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。下图中我修改了其中的二个文件:


我们已经知道怎么将源代码签入到SVN服务器,怎么从服务器签出代码到本机,也简单了解了不同状态所对应的图案啦。


1.3.3 提交修改过的文件到SVN服务器
上面的图2-2-7中,我修改了位于Model文件中的二个文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服务器。
注意:提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。
在Model文件夹上点击右键或在Model文件下的空白处点击右键,点击SVN Commit…弹出下面的窗体:


点击OK按钮后,弹出如下图的窗体:图2-2-10







分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表