Coding In C day09

/*
*秒表练习
*了解库函数sleep()  time() 
*
*/

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int main()
{
	int start = time(0);//time(0)返回值是现今与1970年1月1日0时0分0秒(0时区)的秒数
	while(1) {
		printf("%d\r", time(0) - start);//注意printf打印输入字符流时候,首先是将输出字符放入输出缓冲区,当输出缓冲区中有换行符时候才会打印到屏幕
		fflush(stdout);//立即打印输出缓冲区中的字符流
		sleep(1);//库函数sleep实现让当前程序休眠一秒钟
	}
	return 0;
}

/*
 * const type-specifier练习
 *
 * */

#include <stdio.h>

int main()
{
	const int value = 0;
	printf("value是%d\n", value);
	//value = 3;//编译报错,const 类型修饰符只能在初始化时候放入数据,一旦初始化完成就不能再放入数据。也就是说变量value不再改变。
	//value++;
	printf("value是%d\n", value);

	return 0;
}

/*
 * 静态局部变量练习
 * */

#include <stdio.h>

void f()
{
	//int value = 0;
	static value = 0;//静态局部变量在程序一开始运行时就被创建了,直到整个程序运行结束才会被销毁。静态局部变量具有静态生存期。
	/*static类型修饰符修饰局部变量时可以实现改变变量的生存期,但无法改标识符在源程序中的作用域和可见性。
	 *static类型修饰符修饰全局变量时可以实现改变变量的作用域。*/
	printf("f()中value是%d\n", value);
	value++;
}

int main()
{
	f();
	f();
	return 0;
}

/*
 * 函数返回指针类型数据
 *
 *
 * 指针变量可以作为函数返回值使用,只能把全局变量的地址、静态局部变量的地址或者通过参数获得的地址当做返回值使用。普通局部变量因生存期问题导致使用普通变量的地址作为返回值非常危险,所以绝对不要讲普通局部变量的地址作为返回值使用。
 *
 * */
#include <stdio.h>
int *func()
{
	static int value = 0;
	printf("value是%d\n", value);

	return &value;
}

int main()
{
	int *p_value = NULL;
	p_value = func();
	printf("p_value = func(); *p_value是%d\n", *p_value);
	*p_value = 7;
	func();
	printf("*p_value是%d\n", *p_value);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C和C++的安全编码是指在编写C和C++代码时,采取一系列的措施来确保代码的安全性和防止常见的安全漏洞。由于C和C++是底层的编程语言,它们允许对内存直接进行操作,这也使得它们容易受到各种安全威胁的攻击。 在进行安全编码时,有几个关键的原则需要遵循。首先是验证输入。由于输入数据往往是来自外部,我们需要对输入进行验证,以确保它们符合预期的格式和范围。这样可以防止缓冲区溢出和格式化字符串漏洞等攻击。 其次,应该正确地管理内存。C和C++允许直接控制内存的分配和释放,但这也意味着需要手动管理内存的生命周期。如果没有正确地分配和释放内存,会导致内存泄漏和非法内存访问等问题。因此,务必要仔细检查并指定正确的内存操作。 此外,还应注意避免使用不安全的函数和功能。一些函数和功能可能存在安全风险,如strcpy和scanf等。应该使用更安全的替代函数,如strncpy和fgets等,以提高代码的安全性。 最后,代码的安全性也需要经过不断的测试和审查。通过进行静态代码分析和动态测试,可以发现和纠正代码中的潜在安全问题。此外,代码审查也是非常重要的,通过互相审查可以找到潜在的漏洞和错误。 总而言之,C和C++的安全编码需要遵循验证输入、正确管理内存、避免使用不安全函数和功能以及进行测试和审查等原则。只有通过采取适当的安全措施,才能确保代码的安全性并防止潜在的安全漏洞。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值