找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1636|回复: 1

【VFB】复制C代码(C与FB的差异)(VFB教程3-7)

[复制链接]

51

主题

31

回帖

648

积分

用户组: 大·技术宅

UID
3260
精华
7
威望
12 点
宅币
506 个
贡献
1 次
宅之契约
0 份
在线时间
23 小时
注册时间
2017-12-26
发表于 2018-2-27 10:18:21 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×

此处为VisualFreeBasic编程教程(从零开始学或VB进阶)的子章节部分,全部目录点链接。

高深的,有料的,大多是C语言,但C语言与B语言的语法相差甚远,我们必须基本了解下

就可以无障碍的复制C语言的代码来,自己改B语言使用了。

不过有一点好消息,C语言的数据类型,绝大多少可以直接复制来用,不用修改。

变量声明

  1. C/C++[/p]int a;
  2. int a, b, c;
  3. FreeBASIC
  4. dim a as integer
  5. dim as integer a, b, c
复制代码

未初始化的变量

  1. int a;[/p]------------------------------------
  2. dim a as integer
复制代码

零初始化变量

  1. int a = 0;[/p]-------------------------------
  2. dim a as integer
复制代码

初始化变量

  1. int a = 123;[/p]-------------------------------------
  2. dim a as integer = 123
复制代码

数组

  1. int a[4];[/p]a[0] = 1;
  2. ---------------------------------------
  3. dim a(0 to 3) as integer
  4. a(0) = 1
复制代码

指针

  1. int a;[/p]int *p;
  2. p = &a;
  3. *p = 123;
  4. -------------------------------------------
  5. dim a as integer
  6. dim p as integer ptr
  7. p=@a
  8. *p = 123
复制代码

结构,用户定义类型

  1. struct UDT {[/p]int myfield;
  2. }
  3. -------------------------------------
  4. type UDT
  5.      myfield as integer
  6. end type
复制代码

typedef,别名

  1. typedef int myint;[/p]------------------------------
  2. type myint as integer
复制代码

结构指针

  1. struct UDT x;[/p]struct UDT *p;
  2. p = &x;
  3. p->myfield = 123;
  4. -------------------------------------
  5. dim x as UDT
  6. dim p as UDT ptr
  7. p = @x
  8. p->myfield = 123
复制代码

函数声明

  1. int foo( void );[/p]----------------------------------------
  2. function foo( ) as integer
复制代码

函数体

  1. int foo( void ) {[/p]  return 123;
  2. }
  3. ---------------------------------
  4. function foo( ) as integer
  5.     return 123
  6. end function
复制代码

过程声明

  1. void foo( void );[/p]------------------------------
  2. sub foo( )
复制代码

过程体

  1. void foo( void ) {[/p]}
  2. ----------------------------------
  3. sub foo( )
  4. end sub
复制代码

Byval参数

  1. void foo( int param );[/p]foo( a );
  2. -------------------------------------------
  3. sub foo( byval param as integer )
  4. foo( a )
复制代码

byref参数

  1. void foo( int *param );[/p]foo( &a );

  2. void foo( int& param );
  3. foo( a );
  4. ---------------------------------
  5. sub foo( byref param as integer )
  6. foo( a )
复制代码

语句分隔符

  1. ;   分号[/p]----------------------------------
  2. :   冒号
复制代码

for循环

  1. for (int i = 0; i < 10; i++) {[/p]...
  2. }
  3. -----------------------------------
  4. for i as integer = 0 to 9     还可以带声明 I 的,省了 DIM i as integer
  5. ...
  6. next
复制代码

while循环

  1. while (condition) {[/p]...
  2. }
  3. -------------------------------
  4. while condition
  5. ...
  6. wend
复制代码

do-while循环

  1. do {[/p]...
  2. } while (condition);
  3. --------------------------------------
  4. do
  5. ...
  6. loop while condition
复制代码

IF ELSE

  1. if (condition) {[/p]...
  2. } else if (condition) {
  3. ...
  4. } else {
  5. ...
  6. }
  7. -------------------------------------
  8. if condition then
  9. ...
  10. elseif condition then
  11. ...
  12. else
  13. ...
  14. end if
复制代码

切换,选择

  1. switch (a) {[/p]case 1:
  2. ...
  3. break;
  4. case 2:
  5. case 3:
  6. ...
  7. break;
  8. default:
  9. ...
  10. break;
  11. }
  12. ----------------------------------
  13. select case a
  14. case 1
  15. ...


  16. case 2, 3
  17. ...

  18. case else
  19. ...

  20. end select
复制代码

字符串文字,字符串

  1. char *s = "Hello!";[/p]char s[] = "Hello!";
  2. -----------------------------------------------
  3. dim s as zstring ptr = @"Hello!"
  4. dim s as zstring * 6+1 = "Hello!"
复制代码

调试输出

  1. #include <stdio.h>[/p]int main() {
  2. printf("Hello!\n");
  3. return 0;
  4. }
  5. -------------------------------
  6. print "Hello!"
复制代码

注释

  1. // foo[/p]/* foo */
  2. ------------------------------------
  3. ' foo
  4. /' foo '/
复制代码

编译时检查

  1. #if a [/p]#elif b
  2. #else
  3. #endif
  4. ------------------------------------------
  5. #if a
  6. #elseif b
  7. #else
  8. #endif
复制代码

编译时目标系统检查

  1. #ifdef _WIN32[/p]--------------------------------------------
  2. #ifdef __FB_WIN32__
复制代码

模块/头文件名

  1. foo.c, foo.h[/p]---------------------------------------------
  2. foo.bas, foo.bi
复制代码

典型的编译器命令创建可执行文件

  1. gcc foo.c -o foo[/p]-----------------------------------
  2. fbc foo.bas
复制代码





回复

使用道具 举报

1

主题

157

回帖

605

积分

用户组: 大·技术宅

UID
7535
精华
0
威望
0 点
宅币
447 个
贡献
0 次
宅之契约
0 份
在线时间
68 小时
注册时间
2021-10-16
发表于 2022-5-17 10:28:45 | 显示全部楼层

啥也不说了,感谢楼主分享哇!
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-3-29 21:16 , Processed in 0.035935 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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