我需要处理一个计数器,它为我的应用程序提供了滴答声.计数器是32位,所以我需要知道的是如何在它包装时处理它.例如:
我有一个函数返回一个(timestamp + shifttime),我有另一个函数将返回1或0取决于时间是否已经过去,但我的计数器可能会包装如何处理这个? .
谢谢
非常感谢所有回复的人.我将在此编辑中提供更多详细信息.
我使用的是STM32 Cortex-M3.我想使用RTC计数器将其用作我的应用程序的滴答,以安排需要以特定间隔发生的任务.RTC可以产生溢出中断,因此检测中断不是问题.我遇到的主要问题(或者至少我认为是一个问题)是某些任务获得(时间戳+班次),即.
int main( void )
{
FlashLedTimeStamp = ReturnCounter( 20 ); // currentcounter value + a shift of 20
StatusLedTimeStamp = ReturnCounter( 3 ); // currentcounter value + a shift of 3
//then later on ....
while(1)
{
/* other tasks could go here */
if( HasTimeElapsed( FlashLedTimeStamp );
{
/* do something and get another timestamp value */
FlashLedTimeStamp = ReturnCounter( 20 ); // currentcounter value + a shift of 20 …Run Code Online (Sandbox Code Playgroud) 我有一个小项目,我在两个不同的源文件中命名了两个相同的名称函数,但是在构建项目时,编译器失败,并且'filename已经在filename.obj中定义了'func_name'.
为什么我不能在两个不同的源文件中有两个具有相同名称的函数?我认为该函数应该是源文件的本地函数,只有当我们在头文件中声明它将变为全局时.
除了更改文件名外,C编程语言中是否还有其他优雅的复制函数名称解决方案?
可能重复:
为什么没有全面的c档案网络?
每个人都知道C语言非常小,它只有语言原语,几乎没有标准库(没有数据结构或算法).
因此,我有一个问题,如何找到适合数据结构,算法和系统编程的优秀C库?
例如,如果我需要一个哈希表,我如何找到一个好的实现?或者,例如,如果我需要使用图表,我该怎么办?
到目前为止,我一直在写一切.但是我的哈希表实现还不够好.这是非常基本的.
高级C程序员对这个问题做了什么?他们真的会再次自己写所有的图书馆吗?
谢谢,Boda Cydo.
在以下代码段中将是:
{
unsigned int x=-1;
int y;
y = ~0;
if(x == y)
printf("same");
else
printf("not same");
}
a. same, MAXINT, -1 b. not same, MAXINT, -MAXINT c. same , MAXUINT, -1 d. same, MAXUINT, MAXUINT e. not same, MAXINT, MAXUINT
有人可以解释我的工作原理或者只是解释一下片段吗?
我知道它是关于两个补码n等.MAXINT和-1的意义是什么?这是因为unsigned int和int的事情 - 我是对的吗?
我看到人们经常编写C代码,例如:
char *ptr = malloc(sizeof(char)*256);
Run Code Online (Sandbox Code Playgroud)
这真的有必要吗?标准说,sizeof(char)==1根据定义,只写这样有意义:
char *ptr = malloc(256);
Run Code Online (Sandbox Code Playgroud)
谢谢,Boda Cydo.
在Visual C++,可以发现,其中任何头文件名(变量或类型)定义通过按F12在其上或选择转到定义.此功能非常有用,但它仅显示定义名称的最终位置(头文件).有没有办法找出从我的源文件到给定名称的最终头文件的头文件链?
例如,考虑以下代码:
// main.cpp
#include <stddef.h>
int main()
{
size_t s;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在Visual C++ 2010中,如果我查看size_t上面的定义main.cpp,它会将我置于一个名为的文件中sourceannotations.h.我知道这个标题链以stddef.h(我已经包含)开头并以结尾sourceannotations.h.如何弄清楚这个链中间的链接?
目前我正在考虑是否要重写我在C++中维护的编程语言解释器.解释器目前在C中实现.
但我想知道,这是主要的实现 - 因为,当然,人们已经使用了一种语言而不是原始作者所使用的语言 - 现在使用C++编写的任何流行的编程语言解释器?
如果没有,是否有充分的理由不在C++中编写解释器?据我所知,如果编写正确,C++代码可以非常轻松,并且可以编译运行,就像执行相同操作的编译C代码一样快.
我很好奇当typedefing一个枚举或结构时,这里的区别是什么.这两个块之间在语义上有什么区别吗?
这个:
typedef enum { first, second, third } SomeEnum;
Run Code Online (Sandbox Code Playgroud)
还有这个:
enum SomeEnum { first, second, third };
typedef enum SomeEnum SomeEnum;
Run Code Online (Sandbox Code Playgroud)
结构相同的交易.我已经看到两者都在使用,他们似乎都在C或Objective-C中做同样的事情.是否存在真正的差异,或者只是偏好您可以使用哪种风格?
例如,我有一个cstring "E8 48 D8 FF FF 8B 0D"(包括空格)需要转换为等效的unsigned char数组{0xE8,0x48,0xD8,0xFF,0xFF,0x8B,0x0D}.有效的方法是什么?谢谢!
编辑:我不能使用标准库...所以考虑这个C问题.对不起!
c ×10
c++ ×2
arrays ×1
binary ×1
embedded ×1
header ×1
hex ×1
interpreter ×1
libraries ×1
malloc ×1
objective-c ×1
pointers ×1
repository ×1
sizeof ×1
typedef ×1
visual-c++ ×1