goto,void,extern,sizeof分析
来源:互联网 发布:淘宝网包头尖头皮拖鞋 编辑:程序博客网 时间:2024/05/21 22:40
1. goto 要不要用?
答: goto就像是偷情,有时候 很爽,但是偷的不好的, 自己的都会丢掉.用不用,你自己掂量着.
a: 它破坏了结构化程序的顺序执行,容易隐藏bug, 利大于蔽.
如下面代码
#include <stdio.h>void func(int n){ int* p = NULL; if( n < 0 ) { goto STATUS; } p = malloc(sizeof(int) * n); STATUS: p[0] = n; }int main(){ f(1); f(-1); return 0;}
2. void 主要修饰函数的返回值 和参数.
如果函数没有返回值 ,那么应该将其声明void型.
如果函数没有参数,应该声明 其参数为void型.
问存在void变量?
答:C语言没有定义void究竟是多大内在的别名. 没有void的标尺,无法在内存中剪裁void对应的变量.
在开发编译器的时候,自己定义void变量
#include<stdio.h>int main(){ printf("%d\n", sizeof(void)); return 0;}
void 的意义.
void指针的意义.
a. c语言规定只有相同类型的指针才可以 相互复职.
b. void * 指针作为左值 用于"接收" 任意类型的指针
C. void* 指针作为右值赋值 给其它指针时需要强制类型转换.
void * 指针的作用
实现memset函数.
要做的事情 ,处理接收的参数,确认实现的算法, 返回值 .
#include<stdio.h>void * my_memset (void *p , char v , int size){void * ret =p;char * dest = (char *)p;int i=0;for( i =0; i<size; i++){dest[i] = v;}return ret;}int main(){int a[5] ={1,2,3,4,5};int i = 0;for( i=0; i<5; i++){printf("%d\n", a[i]);}my_memset(a,0,sizeof(a));for( i=0; i<5; i++){printf("%d\n", a[i]);}}
3 .extern 意义
a. 用于声明外部定义的变量和函数,.
b. 用于告诉编译器用C方式编译..
如用C++编译C代码的时候,可以用.
extern "C"
{
int add(int a, int b)
{
return a + b;
}
}
4.sizeof
a: sizeof是编译器的内置指示符,不是函数.
b. sizeof 用于计算相应实体所占的内存大小
c. sizeof的值 在编译期就已经确定.
#include <stdio.h>int main(){ int a; printf("%d\n", sizeof(a)); printf("%d\n", sizeof a); //证明sizeof不是函数 printf("%d\n", sizeof(int));//证明sizeof不是函数. return 0;}
- goto,void,extern,sizeof分析
- goto,void,extern,sizeof分析
- goto,void,extern,sizeof分析
- goto, void, extern, sizeof分析
- goto void extern sizeof
- 04-goto.void.extern.sizeof
- 1.4、goto、void、extern、sizeof剖析
- c语言学习笔记(2)goto,void,extern和sizeof分析
- 专题一关键字的剖析----4.goto,void,extern,sizeof的分析
- void,extern,sizeof 关键字分析
- 【C语言学习】04__goto,void,extern,sizeof分析
- goto void
- sizeof(void*)
- goto和void
- C/C++ sizeof(void)
- extern,inline,宏,sizeof
- sizeof extern数组
- void*与void;strlen与sizeof;memset
- 如何在VC中调用EXCEL公式
- 0,1,2,3,4,5,6,7,8,9的第100万个字典排列是什么?
- 输入格式InputFormat
- 知识框架图 存档
- 修改命令提示符
- goto,void,extern,sizeof分析
- 对象的初始化
- 美国专利检索
- 初学visual c++ 接手别人写的工程,要增加或修改功能,一路走来
- Problem 1000 A+B Problem
- visual studio 指针操作含参数返回,指针返回时最好开辟空间。
- 三角形类
- SOJ 3371 状态DP入门
- NYOJ.28.大数阶乘