C语言#21(代码优化)

9 篇文章 0 订阅
订阅专栏

目录

以strcpy为例

一、strcpy的作用

 二、自己写函数达到strcpy的效果

1、初步实现​

2、改进​

 3、assert的使用 

 4、指针变量前const的使用

 5、改进后​


以strcpy为例

一、strcpy的作用

#include<stdio.h>
#include<string.h>

int main()
{
	char ch1[20] = "xxxxxxxxxxxxx";
	char ch2[10] = "hello";

	strcpy(ch1, ch2);//将ch2的内容换到ch1中,同时\0也会换进去
	printf("%s\n", ch1);
}

 二、自己写函数达到strcpy的效果

1、初步实现

#include<stdio.h>

void my_strcpy(char* dest,char* src)
{
	while (*src != '\0')
	{
		*dest = *src;
		dest++;
		src++;
	}
	*dest = *src;
}

int main()
{
	char ch1[20] = "xxxxxxxxxxxxx";
	char ch2[10] = "hello";

	//strcpy(ch1, ch2);//将ch2的内容换到ch1中,同时\0也会换进去
	//printf("%s\n", ch1);
	my_strcpy(ch1,ch2);
	printf("%s\n", ch1);
}

2、改进

 3、assert的使用 

当出现与你断言的内容相反的内容时会准确的指出错误的位置,如果没有出现与你断言的内容相反的内容,不会对程序的运行产生影响

 4、指针变量前const的使用

(1)在*前加const

(2)在*后加const

 5、改进后

#include<stdio.h>
#include<string.h>
#include<assert.h>

void my_strcpy(char* dest,const char* src)//加了const,如果src与dest位置反了就会报错
{
	assert(*src != NULL);
	assert(*dest != NULL);//断言
	while (*dest++ = *src++)//将*src++的\0赋给*dest++
	{
		;
	}
	*dest = *src;
}

int main()
{
	char ch1[20] = "xxxxxxxxxxxxx";
	char ch2[10] = "hello";

	//strcpy(ch1, ch2);//将ch2的内容换到ch1中,同时\0也会换进去
	//printf("%s\n", ch1);
	my_strcpy(ch1,ch2);
	printf("%s\n", ch1);
}

C语言高效编程与代码优化
12-22
 尽管在C代码优化方面有很多的指南,但是关于编译和你使用的编程机器方面的优化知识却很少。  通常,为了让你的程序运行的更快,程序的代码量可能需要增加。代码量的增加又可能会对程序的复杂度和可读性带来不利...
C语言——字符串函数
Sun_F_Z的博客
03-18 427
计算字符串str的长度,直到空结束字符('\0'),但不包括空结束字符。#include//使用strlen库函数的头文件int main()printf("str长度:%d\n", strlen(str));return 0;
c语言程序代码优化11种实用方法,C语言编程之代码优化(三)***
weixin_39729837的博客
05-20 1709
C语言优化方法最简单的优化方法是借助prof工具判断程序的瓶颈在哪里,你必须判断出程序的那些部分消耗了大量资源. 一旦你判断出瓶颈(比如说执行上万次的循环),你所做的第一件事就是重新设计程序,减低循环次数.当然,现在绝大多数优化编译器可以做到这一点,(不过最好还是自己来--东楼),但是记住,当以下情况出现时,优化是在浪费时间:1)程序只写了一部分 2)程序还没有测试通过 3)看起来已经足够快了还 ...
c语言代码优化举例,C语言优化小技巧
weixin_31304599的博客
05-24 928
该楼层疑似违规已被系统折叠隐藏此楼查看此楼在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考:1.C于代码在程序中的优化现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码长度的平衡。如果要获得更小且执行效率更高的代码,需要程序员手工对代码进行优化。2.变量类型的定义不同的数据类型所生成的机器代码长度相差很多,变量类型选取的范围越...
c语言编译器 代码优化,C语言 之编译器优化
weixin_33998219的博客
05-18 903
C语言的编译器会对变量和代码进行一定的优化,我们看下面这个例子。int a,b,c;a=1;b=a;c=b;这个程序正常运行的时候会这样子:先把a指向的内存空间内放入1再把a指向的内存空间里的数读出来放到b指向的内存空间,最后再把b指向的内存空间里的数读出来放到c指向的内存空间里。然而编译器要对这个程序进行一定的优化,编译的时候,直接把1放入三个内存空间中。这样子在正常运行的时候确实是好事,但是总...
c语言保证代码不被优化,C语言优化小技巧
weixin_42136477的博客
05-25 2110
该楼层疑似违规已被系统折叠隐藏此楼查看此楼在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考:1.C于代码在程序中的优化现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码长度的平衡。如果要获得更小且执行效率更高的代码,需要程序员手工对代码进行优化。2.变量类型的定义不同的数据类型所生成的机器代码长度相差很多,变量类型选取的范围越...
第八章 预处理命令_C语言#if、##ifdef、#ifndef的用法详解,C语言条件编译详解
qq_43205256的博客
02-23 4463
假如现在要开发一个C语言程序,让它输出红色的文字,并且要求跨平台,在 Windows 和 Linux 下都能运行,怎么办呢? 这个程序的难点在于,不同平台下控制文字颜色的代码不一样,我们必须要能够识别出不同的平台。 Windows 有专有的宏_WIN32,Linux 有专有的宏__linux__,以现有的知识,我们很容易就想到了if else,请看下面的代码: 但这段代码是错误的,在 Windows 下提示 __linux__ 是未定义的标识符,在 Linux 下提示 _Win32 是未定义的..
C语言代码优化11种实用方法
爱技术、爱生活、爱健康
05-31 4164
1、选择合适的算法和数据结构 2、使用尽量小的数据类型 3、减少运算的强度 (1)、查表(游戏程序员必修课) (2)求余运算 (3)平方运算 (4)用移位实现乘除法运算 (5)避免不必要的整数除法 (6)使用增量和减量操作符 (7)使用复合赋值表达式 (8)提取公共的子表达式 4、结构体成员的布局 (1)按数据类型的长度排序 (2)把结构体填充成最长类型长度的整倍数 (3)按数据类型的长度排序本地变量 (4)把频繁使用的指针型参数拷贝到本地变量 5、循环优化 (...
c语言 ifdef用法,C语言#if、##ifdef、#ifndef的用法详解,C语言条件编译详解
weixin_35285276的博客
05-24 5754
假如现在要开发一个C语言程序,让它输出红色的文字,并且要求跨平台,在 Windows 和 Linux 下都能运行,怎么办呢?这个程序的难点在于,不同平台下控制文字颜色的代码不一样,我们必须要能够识别出不同的平台。Windows 有专有的宏_WIN32,Linux 有专有的宏__linux__,以现有的知识,我们很容易就想到了 if else,请看下面的代码:#include int main(){...
代码优化C语言实例(程序性能的优化)
m0_55953161的博客
10-07 726
一个系统的优化有两个方向,一个是硬件和电路的优化,另一个是系统软件的优化,也就是程序的优化。硬件和电路优化是硬件工程师的事,我们程序员给系统升级的方向当然是程序的优化。
c语言禁止优化某段代码,C语言优化小技巧
weixin_42176612的博客
05-24 1818
该楼层疑似违规已被系统折叠隐藏此楼查看此楼在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考:1.C于代码在程序中的优化现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码长度的平衡。如果要获得更小且执行效率更高的代码,需要程序员手工对代码进行优化。2.变量类型的定义不同的数据类型所生成的机器代码长度相差很多,变量类型选取的范围越...
C语言编程代码结构优化
05-18
C语言编程代码结构优化
如何优化C语言代码 代码终极优化
07-31
如何优化C语言代码 代码终极优化 讲解一些必要的和容易忽视的优化
电子学会C/C++编程等级考试2024年03月(四级)真题解析
人生就是一个不断学习的过程
05-11 391
题目包括:最长上升子序列、重启系统、硬币、奶牛散步
unix C之环境变量
Python私教
05-11 358
每个进程都有自己的一张环境变量表,表中的每个条目都是形如 key=value 的键值对形式的环境变量。进程可以通过环境变量访问计算机资源。在终端下输入env命令,可以查看环境变量列表。通过echo $name 可以查看某个环境变量的值。全局环境变量:当前shell和其子进程都是可见的局部环境变量:只有当前shell可见unset namePATH:存储了执行命令时,系统中查询命令的路径。PS1:用来影响提示符的内容。所谓环境变量表就是一个以NULL指针结束的字符指针数组。
class常量池、运行时常量池和字符串常量池的关系
weixin_44049823的博客
05-11 1185
字符串常量池专门用于存储字符串常量。对于 Hotspot 虚拟机来说,类加载时,字符串字面量作为类常量池的一部分信息被载入运行时常量池中,它们以特殊的形式存储在运行时常量池中,此时它们并未被实例化为Java堆中的String对象。只有当这个字符串字面量被调用时,才会对其进行解析,即检查字符串常量池中是否已经存在相同内容的字符串对象。如果存在,就直接返回指向该对象的引用,如果不存在,虚拟机会在字符串常量池中创建一个对应的String实例,并返回这个新实例的引用。
软考-考生常见操作说明-202405101400-纯图版.pdf
05-14
软考官网--2024常见操作说明:包括如何绘制网络图、UML图、表格等 模拟作答系统是计算机技术与软件专业技术资格(水平)考试的电子化考试系统界面、作答过程的仿真系统,为各级别、各资格涉及输入和页面显示的部分题型提供体验性练习。
setuptools-34.0.3.zip
最新发布
05-14
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
基于遗传优化GA的三目标优化仿真【包括程序,注释,操作步骤】
05-14
1.版本:matlab2022A。 2.包含:程序,中文注释,仿真操作步骤(使用windows media player播放)。 3.领域:遗传优化 4.仿真效果:仿真效果可以参考博客同名文章《基于遗传优化GA的三目标优化仿真》 5.内容:基于遗传优化GA的三目标优化仿真。遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传机制的全局搜索优化方法,广泛应用于解决复杂优化问题,包括具有多个目标的优化问题,即多目标遗传算法(Multi-Objective Genetic Algorithm, MOGA)。在这里,将三个目标函数进行统一的编码,通过单目标遗传优化的方式,同步求解三个目标函数的最优值。 6.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
C语言 #pragma
07-27
#pragma 是一个C语言的预处理指令,用于向编译器提供特定的指令或设置。它通常在代码中的函数或全局范围内使用,并且可以用于控制编译器行为、优化选项、警告设置等。 #pragma 指令的具体用法和效果取决于编译器的实现和版本。以下是一些常见的 #pragma 指令: 1. #pragma once:指示编译器只包含一次头文件,以防止多重包含。 2. #pragma pack(n):指定结构体或联合体的字节对齐方式为 n 字节。 3. #pragma warning:控制编译器警告的级别和行为。 4. #pragma message:在编译过程中输出一条自定义的消息。 5. #pragma region / #pragma endregion:用于定义代码块的折叠区域。 需要注意的是,由于 #pragma 是编译器特定的指令,不同的编译器可能有不同的支持和行为。因此,在使用 #pragma 指令时应注意兼容性和可移植性。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Git命令与在IDEA中配置Git 4382
  • AJAX,Axios,JSON简单了解 2247
  • Java#13(String Builder介绍及其常用办法) 1613
  • Java#9(文字格斗游戏和对象数组练习) 1358
  • Java#4(各类语句和一点小练习) 1091

分类专栏

  • HTML 14篇
  • JS 6篇
  • JAVA 47篇
  • MyBatis 1篇
  • MySQL 4篇
  • C++ 8篇
  • C语言 9篇

最新评论

  • 乐意购项目前端开发 #5

    CSDN-Ada助手: 推荐 Vue入门 技能树:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue

  • C语言#(C语言小游戏:三子棋)

    I D K: 电脑下棋那里少写了一行 ret = InWin(board, ROW, COL);

  • Java#9(文字格斗游戏和对象数组练习)

    guaiwu_: this.getName 谁来调用attack这个方法,this就是谁 例如:zhangsan.attack(lisi); this.getName就是zhangsan的名字,而lisi在参数的位置, role.getName就是lisi的名字

  • Java#9(文字格斗游戏和对象数组练习)

    讨厌java@: 那this getName嘞,我想知道的是这个表情包表情包,后面的那个role,getName也是,第二个朋友说是方法,被打的人,但是第一个不晓得是什么,他说不用管

  • Java#9(文字格斗游戏和对象数组练习)

    guaiwu_: set可以理解为你往里面添加数值,而get就是把已有的数值拿出来

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 乐意购项目前端开发 #7
  • 乐意购项目前端开发 #6
  • 乐意购项目前端开发 #5
2024年7篇
2023年28篇
2022年81篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司泰安网站排名优化多少钱鄂州SEO按天扣费厦门网站优化排名价格资阳网站改版哪家好六安seo网站优化报价苏州如何制作网站哪家好抚顺企业网站改版价格鹤壁优秀网站设计公司西乡网页设计多少钱百色关键词排名报价本溪网站制作设计多少钱驻马店建网站哪家好西安网站建设多少钱永湖seo网站优化多少钱天水外贸网站制作哪家好坑梓关键词排名包年推广多少钱湘潭网站优化公司德阳设计公司网站哪家好海口网站制作设计公司清徐网页制作周口企业网站制作报价和田建网站报价济南模板网站建设报价黔西南网络营销哪家好韶关百度竞价包年推广多少钱鸡西SEO按天计费报价大同百度关键词包年推广阜阳模板网站建设哪家好沈阳企业网站制作公司成都网站优化排名歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化