c与c++的区别(基础)
为了用vc写一个最简单的 socket 程序,花费了一个下午的时间,过程中出现的错误有:
'SOCKET' : illegal use of this type as an expression
syntax error : missing ';' before 'type'
syntax error : identifier 'InitWinsock' --> bool InitWinsock()
既然要做 socket 程序, #include <winsock.h> 是 必不可少的,以及 ws2_32.lib,但问题不出在这里。
该文件若是 .cpp 后缀可成功编译,然而若是 .c 就出现上述错误,可见,这便是 c与c++的区别。
首先,要保证所有的 变量声明 位于程序最前面,
int i; 也要在
int j = 5; 前面;
其次,winsock.h 中有SOCKET的宏定义, 要么大写,要么 struct socket,两者相同;
然后,在C语言中,没有bool类型,只是在宏定义中有 #define int BOOL,以及 #define TRUE 1 等。
最后,在更正所有错误后,我去除了 windows debug 等中ws2_32.lib,依然可以运行,不知何故?!
综上所述,C与C++还是有不少区别的。
虽然更正了错误,但原因不甚了解,望高手指点一二。
相关文档:
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类 ......
在测试
ConsoleRunner
的过程中发现一个有意思的现象,一段很简单的
C
程序:
#include <stdio.h>
#include <windows.h>
int main() {
int i = 0;
for (;;) {
printf("%d\n", i++); ......
这两天学习C++学累了,看了很多的网站论坛,突然感觉迷茫了,c/c++到底能做什么呢?现在JAVA很热,也很好找工作,而且学起来还听说很容易入门。不用学计算机基础类的知识,可C/C++就不同了,只学编程还不行,还得学什么数据结构,算法,计算机原理,操作系统,汇编语言,编程用具等等,需要好多,感觉一 ......
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体" ......
/*
coder: ACboy
date: 2010-3-14
result: 1A
description: UVa 327 Evaluating Simple C Expressions
*/
#include <iostream>
#include <algorithm>
using namespace std;
struct Node {
char name;
int value;
int lastValue;
int pos;
};
int cmp(const Node & a, const Node &a ......