C语言
文章平均质量分 75
进击的横打
此人不懒,但也什么都没有写
展开
-
【嵌入式C语言】crc32校验的c语言实现
一种的多项式也有很多种变化,输入输出方式也有区别,有一些初始值是0,有一些初始值是0xFFFFFFFF,有一些直接返回,有一些异或返回,因此,CRC校验很难用一个代码兼容全部,只能根据具体项目修改相关参数。对于不同类型的文件所使用的多项式以及算法不同,对于不同的生成多项式所生成的crc32表不同,不同的算法也会产生不同的结果。生成多项式采用0xEDB88320的时候,生成的crc32Table的算法如下。CRC算法查表法很常见,但表是怎么来的,看了上面的代码应该就可以清楚了。查表法CRC32校验算法。原创 2024-07-28 17:08:49 · 689 阅读 · 0 评论 -
C语言经典面试题
d表示十进制输出为11是没有异议的,%o是按照8进制输出,在这里先将11转换为2进制,为1011,再变成8进制就是13,%x是16进制输出,这里输出的就是b。8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是____D____A) 0 B) 1 C) 3 D) 不确定的值。A) 67,D B) B,C C) C,D D) 不确定的值。A) a B) b C) c D) 程序语法出错。原创 2024-05-18 10:36:16 · 414 阅读 · 0 评论 -
【C/C++语言必知必会】第六章 字符串与数组
库函数strcat()把字符串内容连接到目标字符串的后面,所以应该从目标字符串的末尾,也就是结束符的位置开始插入另一个字符串的内容。与strcpy不同的是,memcpy用参数size决定复制多少个字符(strcpy遇到结束符)解析:代码第12行和第13行调用的是strcat函数,strcat是字符串操作的库函数。test2函数字符串长度都不是10而是11,还需要将str1[10]置为’\0’;test3函数当中不应该用<=10而应该使用<10。由于在主程序中只复制了strSrc的前四个字符。原创 2024-05-16 18:57:12 · 940 阅读 · 0 评论 -
知名外企嵌入式C语言笔试试题
知名外企嵌入式C语言笔试试题嵌入式C语言笔试试题知名外企嵌入式C语言笔试试题一. 选择题二. 填空题三.写出程序的运行结果一. 选择题01.C语言合法的常量是()A…45B.078C.25D.“xy”解答:答案选择D。这个是字符串常量。02.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y的功能是()A.把x和y按从大到小排列B.把x和y按从小到大排列C.无确定结果D.交换x和y中的值解答:答案选择D。03.设a为int型变量,值为5的枚举常量是()e原创 2022-09-30 23:49:35 · 1635 阅读 · 0 评论 -
(转)ASCII、GBK、Unicode、UTF-8、ISO-8859-1等常见字符编码介绍
(转)ASCII、GBK、Unicode、UTF-8、ISO-8859-1等常见字符编码介绍通过计算机编码的诞生和发展历程,理解为毛有这么多种字符编码,以及他们之间的区别。本文主要参考网页编码就是那点事,并进行适当修改。盘古开天之ASCII编码出现最早的时候,是在学习C语言的时候接触的ASCII编码(American Standard Code for Information Inte...转载 2019-11-13 11:32:55 · 335 阅读 · 0 评论 -
宽字符与Unicode (c语言 汉语字符串长度)
宽字符与Unicode (c语言 汉语字符串长度)在C语言中,我们使用char来定义字符,占用一个字节,最多只能表示128个字符,也就是ASCII码中的字符。计算机起源于美国,char 可以表示所有的英文字符,在以英语为母语的国家完全没有问题。但是世界上存在很多不同的语言,例如汉语、汉语、日语等有成千上万个字符,需要用多个字节来表示,称之为宽字符(Wide Character)。Unicod...转载 2019-11-13 09:47:05 · 1288 阅读 · 0 评论 -
Unicode和UTF-8之间的转换
通过这几天的研究,终于明白了Unicode和UTF-8之间编码的区别。Unicode是一个字符集,而UTF-8是Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode占有的字节比UTF-8占用的字节少1个字节。Unicode为双字节,而UTF-8中汉字占三个字节。注: Unicode编码目前规划的总空间是17个平面,0x0000 至 0x1...转载 2019-11-12 15:27:49 · 567 阅读 · 0 评论 -
(转)C语言中realloc()函数解析
(转)C语言中realloc()函数解析一、基本特性1、 realloc()函数可以重用或扩展以前用malloc()、calloc()及realloc()函数自身分配的内存。2、 realloc()函数需两个参数:一个是包含地址的指针(该地址由之前的malloc()、calloc()或realloc()函数返回),另一个是要新分配的内存字节数。3、 realloc()函数分配第二个参数指...转载 2019-10-29 14:48:34 · 1268 阅读 · 0 评论 -
(转)物联网协议之一:MQTT协议
物联网协议之一:MQTT协议MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCPIP协议之上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适...转载 2019-10-15 14:18:21 · 562 阅读 · 0 评论 -
【转】C语言面试专用题库
C语言面试题库2转载 2017-10-29 17:17:46 · 3726 阅读 · 0 评论 -
【转】C语言除法运算符“/”和求余运算符“%”
C语言除法运算符“/”和求余运算符“%”转载 2017-10-29 15:10:38 · 6973 阅读 · 1 评论 -
C语言面试专用题库
C语言面试专用题库原创 2017-10-29 13:23:22 · 1689 阅读 · 0 评论 -
(转)移植32位程序64位系统
64个系统已经为32位的应用程序准备了运行32位程序的环境,这个环境就是WOW64的。 WOW64 是Windows -32-on-Windows-64 的缩写。它为现有的 32 位应用程序提供了 32 位的模拟,可以使大多数 32 位应用程序在无需修改的情况下运行在 Windows 64 位版本上。它类似于旧的 WOW32 子系统 ,负责在 Windows 32 位版本下运行 16 位的代转载 2009-10-19 17:17:00 · 3405 阅读 · 0 评论 -
(转)将32位代码向64位平台移植的注意事项
转自:http://dev.yesky.com/157/2297157_2.shtml 随着低成本64位平台的来临,加上内存和硬盘价格的不断下跌,无疑为32位程序向64位硬件的移植又加了一把劲,那些科学运算、数据库、消耗大量内存或密集浮点运算的程序也搭上了这一顺风车。在本文中,主要讨论向64位平台移植现有32位代码时,应注意的一些细小问题。 新近的64位平台在二进制上与32位应用程序兼容转载 2009-08-31 10:29:00 · 2551 阅读 · 0 评论 -
(转)基于API的录音机程序
基于API的录音机程序作者/栾义明 一、数字音频基础知识Fourier级数: 任何周期的波形可以分解成多个正弦波,这些正弦波的频率都是整数倍。级数中其他正线波的频率是基础频率的整数倍。基础频率称为一级谐波。PCM: pulse code modulation,脉冲编码调制,即对波形按照固定周期频率采样。为了保证采样后数据质量,采样频率必须是样本声音最高频率的两倍,这就是Nyquis转载 2009-08-04 17:00:00 · 832 阅读 · 0 评论 -
复习三:C的OOP-多态
#pragma once/**//*super.h*/typedef int (*getValue)(void *);typedef struct CSuper_t...{ void *body; getValue GetValue;}CSuper;#define Super_GetValue(n) (n->super.GetValue)(n->super.body);原创 2008-01-10 16:20:00 · 1058 阅读 · 0 评论 -
复习四:C的OOP-多层继承
#pragma once/**//*Super_Super.h*//**//*僋儔僗偺掕媊*/typedef struct CSuper_Super_t...{ /**//*僒僽乕僋儔僗偺僀儞僗僞儞僗*/ void * body; /**//*帺恎偺僋儔僗曄悢*/ int Value;}CSuper_Super;extern int Sup原创 2008-01-10 16:43:00 · 1204 阅读 · 1 评论 -
复习二:C的OOP-Interface继承
/**//*Super.h*/typedef void (*get)(void*,short);typedef void (*set)(void*,short);typedef void (*clear)(void*,short);typedef struct CSuper_t...{ void * body; get Get; set原创 2008-01-10 11:00:00 · 1002 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之道
C语言嵌入式系统编程修炼之道——背景篇... 1C语言嵌入式系统编程修炼之道——软件架构篇... 41.模块划分... 42.多任务还是单任务... 53.单任务程序典型架构... 64.中断服务程序... 75.硬件驱动模块... 96.C的面向对象化... 10总结... 10C语言嵌入式系统编程修炼之道——内存操作篇... 121.数据指针..转载 2007-08-14 15:06:00 · 1232 阅读 · 0 评论 -
C,C++经典问题
1 编程基础1.1 基本概念1. 的理解:const char*, char const*, char*const的区别问题几乎是C++面试中每次 都会有的题目。 事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 co转载 2007-08-14 15:14:00 · 1632 阅读 · 0 评论 -
小猫与小狗
dog.h注:狗的结构体是继承了动物的结构体,当然也在这里定义了狗的动作(叫)这个类型#ifndef DOG_H__#define DOG_H__#include "animal.h"typedef struct dog_t Cdog ;struct dog_t...{ Canimal super;};typedef struct...{ void (* bark)(Cdo原创 2007-08-14 13:33:00 · 1315 阅读 · 0 评论 -
嵌入式
非常基本关于C语言的问题,一个信息类(计算机,资讯工程,电子工程, 通信工程)专业的本科毕业生应该达到的水平。题目不难,全部都能快速地答完,当然也需要一定的知识储备。对于大多数人,我们预期你可能答错 3) 4) 15)题,所以答错3道以内的,我们认为你很棒答错5道题以内,我们认为你还不错(你还可能答错第9题)如果你有6道以上的题目不能答对,基本上我们都不好说什么了....约定: 1) 下转载 2007-08-14 15:00:00 · 1266 阅读 · 0 评论 -
WSAAsyncSelect 模型
//C++中网络编成,主函数//#include winsock.h>int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst, LPSTR lpsCmdLine, int nCmdShow)...{ WSADATA wsaData; hInst = hCurInst; i原创 2007-08-20 16:10:00 · 1074 阅读 · 0 评论 -
简单的多线程
#pragma once#include windows.h>#include stdio.h>#include stdlib.h>DWORD WINAPI WorkThread(LPVOID pVoid);//主綫程int main(void)...{ int * num;//傳遞給新綫程的參數 DWORD dwThreadId;//綫程ID HANDLE hThread原创 2007-08-21 10:47:00 · 947 阅读 · 0 评论 -
SOCKET简单实例
客户端WSAStartup→socket→サービス指定→connect→send→closesocket→WSACleanup#define TCP_FLG 1#define UDP_FLG 0#define PORT_IP_REMOCON (60000)#define IP_SERVER ("192.168.168.113")#define MAX_LENGTH 100s原创 2007-08-21 16:04:00 · 1428 阅读 · 0 评论 -
六种Socket I/O模型
本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的转载 2007-08-28 11:25:00 · 1517 阅读 · 0 评论 -
Windows下与Linux下编写socket程序的区别
区别 【【Windows】】【Windows: 头文件的区别】 #include #include 【Windows: 初始化的区别】 WSADATA wsaData;WSAStartup(0x202,&wsaData);【Windows: 声明Socket】 SOCKET类型【Windows: Socket关闭】closesocket()【Windows: Socket操转载 2007-08-28 13:28:00 · 1137 阅读 · 0 评论 -
网络socket编程指南
介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等… 好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过网络编程的沼泽,那么你来对地方了。读者对象 这个文档是一个指南,而不是参考书。如果你刚开始转载 2007-08-28 13:33:00 · 925 阅读 · 0 评论 -
星号的秘密
2、定义指针int *p = 0; 还是 int* p = 0;?后一种比较容易这样理解:定义了一个变量p,它是指针型的(更详细一点,是指向int的指针型),相比而言,前面一种定义似乎是定义了*P这个奇怪的东西。但是后面一种写法会带来一个容易产生的误解:int* p1, p2; 这儿给人的感觉似乎是定义了两个指针型变量p1和p2,但是,事实上,这种直觉是错误的,正确的理解方式是in转载 2007-10-17 15:20:00 · 978 阅读 · 0 评论 -
(转)C/C++程序设计员应聘常见面试试题深入剖析
预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式转载 2008-03-04 14:44:00 · 934 阅读 · 0 评论 -
CAsyncSocket,CSocket的使用方法
Socket有同步阻塞方式和异步非阻塞方式两种使用,事实上同步和异步在我们编程的生涯中可能遇到了很多,而Socket也没什么特别。虽然同步好用,不费劲,但不能满足一些应用场合,其效率也很低。 也许初涉编程的人不能理解“同步(或阻塞)”和“异步(或非阻塞)”,其实简单两句话就能讲清楚,同步和异步往往都是针对一个函数来说的,“同步”就是函数直到其要执行的功能全部完成时才返回,而“异步”则是,函数转载 2007-12-10 13:58:00 · 1203 阅读 · 0 评论 -
复习一:C的OOP-基本继承
/**//*Super.h*//**//*クラスの定義*/#ifndef __SUPER_H#define __SUPER_Htypedef struct CSuper_t...{ /**//*サブークラスのインスタンス*/ void* body; /**//*自身のクラス変数*/ int Value;}CSuper;exte原创 2008-01-08 16:47:00 · 1270 阅读 · 0 评论 -
A_r_t_i_c的简单应用
#ifndef _H_H#define _H_H/**//************************ インクルード*************************/#include Artic.h>/**//************************ コールバック関数型定義*************************//**//* クラス宣言 */typedef原创 2007-08-14 14:54:00 · 1101 阅读 · 0 评论