小编new*_*777的帖子

静态常量字符指针以及为何以这种方式使用它

static const char* const test_script = "test_script";
Run Code Online (Sandbox Code Playgroud)

您何时以及为何使用上述声明?它有什么好处吗?

为什么要使用char*而不是常量字符?"常量字符指针"(const char*)已经是常量,无法更改; 那么为什么要static在前面使用这个词呢?它有什么用呢?

c c++ static const char

3
推荐指数
1
解决办法
887
查看次数

等式运算符与按位AND运算符的使用

在C语言中,我经常if以这种形式看到语句:

#define STATUS 0x000A
UINT16 InterruptStatus;
if (InterruptStatus & STATUS)
{
 <do something here....>
}
Run Code Online (Sandbox Code Playgroud)

如果我有这样的陈述,处理时间或任何其他原因会不同于为什么这不是首选/替代方式?

#define STATUS 0x000A
UINT16 InterruptStatus;
if (InterruptStatus == STATUS)
{
 <do something here....>
}
Run Code Online (Sandbox Code Playgroud)

c equality bitwise-and

2
推荐指数
1
解决办法
947
查看次数

在C语言中,静态变量具有指针访问权限

我的问题是关于内存以及如何在具有多个C文件(多个模块)的程序中访问它.

file1.h版本1

    #ifndef file1_h
    #define file1_h

    typedef struct
    {
      UINT8  var1;
      UINT16 var2;
      UINT16 var3;
    } TestAccess;

    static TestAccess* pLongRangeAccess;

    #endif
Run Code Online (Sandbox Code Playgroud)

file1.h版本2

    #ifndef file1_h
    #define file1_h

    typedef struct
    {
      UINT8  var1;
      UINT16 var2;
      UINT16 var3;
    } TestAccess_t;

    TestAccess_t* pLongRangeAccess;

    #endif
Run Code Online (Sandbox Code Playgroud)

MAIN.C

#include "file1.h"

void main(void)
{
  pLongRangeAccess->var1 = 4;
  pLongRangeAccess->var2 = 8;
  pLongRangeAccess->var3 = 16;
}
Run Code Online (Sandbox Code Playgroud)

Module1.c //需要对struct变量进行读/写访问

#include "file1.h"

void module1(void)
{
  pLongRangeAccess->var1 = 5;
  pLongRangeAccess->var2 = 10;
  pLongRangeAccess->var3 = 20;
}
Run Code Online (Sandbox Code Playgroud)

问题1)参见"Version1"关键字中的static是否使得堆内存中只有一个副本(未初始化),因此只有一个指针变量OR的地址,它会创建2个具有不同内存的静态变量,因为标题是在每个模块中使用?

问题2)参见"版本2"如果没有为指针变量声明静态,那么它仍然在堆内存中,并且会有一个UNIQUE地址可用于访问成员的读写操作?

问题3)在file1.h的第2版中,如果指针是在Main.c中声明的,并且内存位置是固定的,即它被声明为常量,它是否可以通过取消引用内存地址从任何模块进行访问地点?

c memory pointers

1
推荐指数
1
解决办法
419
查看次数

当本地回购发生变化时,git如何知道?

当您更改工作目录中的文件时,git确切地知道更改了哪个文件.怎么知道的?

Q1)它是否在提交时计算校验和,并在事件驱动的更改时重新计算它,例如在工作目录中创建的新文件.

Q2)除了工作目录文件之外,您的本地驱动器是否将其余文件保留在某个位置,随着您包含更多项目而增加?C:\Users\<USER NAME>\Downloads\.git\objects 添加了我试图跟踪的新文件夹,我的驱动器看起来更加饱满,现在我想要撤消我试图跟踪的文件夹,如何回收该空间.我试图用GIT做一些奇特的事情,比如跟踪我本地项目文件和其他文档的变化,这样我就可以看到已更改的文档并仅使用这些文件更新我的备份.

git hash storage checksum

1
推荐指数
1
解决办法
747
查看次数

.git / info / exclude和.gitignore之间的区别

当我从GitLab将一个仓库复制到本地时,它连同源代码一起也在根文件夹调用程序中提取了一个文件.gitignore。还有一个名为的文件夹.git,其中包含目录,info其中包含名为的文件exclude。忽略(对我而言,忽略和排除表示相同)是哪一个?是忽略还是排除?

git ignore

0
推荐指数
2
解决办法
803
查看次数

标签 统计

c ×3

git ×2

bitwise-and ×1

c++ ×1

char ×1

checksum ×1

const ×1

equality ×1

hash ×1

ignore ×1

memory ×1

pointers ×1

static ×1

storage ×1