小编Hai*_*iri的帖子

C语言中双重否定的作用是什么

我对编译器对此的“想法”有争议:

a = 8;
b = !!a;
Run Code Online (Sandbox Code Playgroud)

那么,是b == 0x01?总是TRUE或者0x01可能是,0xFF等等?0xFFFF0xFFFFFFFF

如果我只想提取这种0x00双重(a == 0)否定 方法0x01是否(a > 0)有效?

换句话说:要获得结果只有 0 或 1,使用什么更好?

a) a>0?1:0; b) !!a

我希望你能理解我的问题。

c

4
推荐指数
2
解决办法
7062
查看次数

为什么在函数执行结束后,函数创建并返回的对象仍然存在?

我读到每个函数都有自己的堆栈,这意味着当函数结束时,它的变量不再保留在内存中.我还读到对象是通过引用返回的.

考虑这个例子:

function getObject() {
 var obj = {name: "someName"};
 return obj;
} //At the end the locals should disappear


var newObj = getObject();// Get reference to something that is no longer kept in the stack,
console.log(newObj);//
Run Code Online (Sandbox Code Playgroud)

因此,如果函数返回的值是 不再存在的对象的引用(在堆栈中),我们如何仍然获得正确的值?在C(语言)中返回指向局部变量的指针是疯狂的.

javascript memory-management

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

红宝石冒号前缀字符串

我是Ruby的新手,刚遇到了以下代码片段:

rr = {
  id: 215043,
  :'Official Name' => "Google, Inc."
}
Run Code Online (Sandbox Code Playgroud)

这是最多的错误:'Official Name' =>。它看起来像是带有空格的符号。

当我打印它时,我看到:

{:id=>"215043", :"Official Name"=>"Google, Inc."}
Run Code Online (Sandbox Code Playgroud)

请帮助我理解这一点。

ruby

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

GCC将常量指针和常量整数放入不同的内存区域

我正在使用GCC for ARM V4.8.3开发一个嵌入式C项目.我想要实现的是将结构放入MCU的FLASH(ROM)存储器中.自从我一篇文章以来,我认为每个被定义为constant(const)的对象标识符都被放入到该.rodata部分中,在我的情况下(根据liker脚本)嵌套.text在另一方面嵌入在FLASH内存区域中.

我倾向于这么认为,因为我检查了一个我的对象定义,这是一个常量指针:

const char * const project_stringInvalidCharacter = "Invalid Character! \n";
Run Code Online (Sandbox Code Playgroud)

如果限定为常量,则指针位于FLASH中.

但是,当我定义一个int(const uint_8 myObj;)类型的常量对象时,我看到它的地址代表一个属于RAM或.bss 区域的数字.

换句话说const适用于指针,但不适用于整数类型.通过工作我的意思是它做了我所期望的,从我之前的帖子推断,即将标识符"放置"到FLASH(ROM)中.

c embedded linker

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

如何在UML中表达互斥继承?

如何举例说明一个类可以继承两个超类中的任何一个,但不能同时继承它们?

在此输入图像描述

属性可以表示一数字,也可以表示基数,但不能同时表示两者.

uml

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

当我将uint8_t数组转换为uint32_t时会发生什么?

假设我有这个数组:

uint8_t arr[10];
Run Code Online (Sandbox Code Playgroud)

位于地址0x00.

然后我想将其中的一部分分配给uint32_t值.arr [1],arr [2],arr [3]和arr [4]的聚合为32位整数.这是一个例子:

uint8_t arr[10];
uint32_t i;
i = *( (uint32_t *)&arr[1] );
Run Code Online (Sandbox Code Playgroud)

困扰我的arr[1]是位于地址不是四的地址(地址0x01).所以问题是:32位平台会发生什么?这是否合法,与标准uint32作业相比是否有一些缺点?

c arrays

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

这两个定义与编译器有何不同?

这句话是正确的:

char *c[3] = {"abcd", "efgh", "jklm",};
Run Code Online (Sandbox Code Playgroud)

这个虽然结构相似,但编译器不喜欢它.

int *a[3] = {{48,49,50,51}, {5,6,7,8}, {9,10,11,12},};
Run Code Online (Sandbox Code Playgroud)

他们有什么不同?编译器不能从初始化推断出大小a

在我看来,编译器对待char *不同的.

c

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

循环内定义的局部变量

我有一个函数和几个嵌套循环.每个循环使用其他循环未使用的不同变量.

我的问题是出于优化考虑.

这是:哪种方法更好?

在循环体内定义局部变量

void aspProtocolDetectEvents()
{
    uint8_t arrayIndex;
    for( arrayIndex = 0; arrayIndex < sizeof(__aspProtocol_events); arrayIndex++ )
    {
        uint8_t contextBitPosition;
        for(contextBitPosition = 0; __aspProtocol_events[arrayIndex] != 0; contextBitPosition++)
        {
            __aspProtocol_Event contextEvent = utils_getAbsoluteBitPosition(__aspProtocol_events, arrayIndex, contextBitPosition);
            if( __aspProtocol_isRisenEvent(contextEvent) )
            {
                __aspProtocol_dispatchEvent(contextEvent);
                __aspProtocol_clearEvent(contextEvent);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,最好在函数体的开头定义所有这些吗?

void aspProtocolDetectEvents()
{
    uint8_t arrayIndex;
    uint8_t contextBitPosition;
    __aspProtocol_Event contextEvent;
    for( arrayIndex = 0; arrayIndex < sizeof(__aspProtocol_events); arrayIndex++ )
    {
        for(contextBitPosition = 0; __aspProtocol_events[arrayIndex] != 0; contextBitPosition++)
        {
            contextEvent = utils_getAbsoluteBitPosition(__aspProtocol_events, arrayIndex, contextBitPosition);
            if( __aspProtocol_isRisenEvent(contextEvent) …
Run Code Online (Sandbox Code Playgroud)

c

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

Ruby中表达式右侧的逗号字符是什么

请问这个基本问题,但我在Google上找不到答案。我是Ruby的新手,遇到过以下代码行:

self.primary_keys = :role_id, :action_name
Run Code Online (Sandbox Code Playgroud)

我从中了解到的self.primary_keys是一个Class变量,并被分配了一个数组或符号哈希?表达式(:role_id, :action_name)的右侧是什么意思?它是什么类型?

ruby

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

如何将 css 类应用于元素但排除相同样式的嵌套/子元素

您好,我正在尝试将样式应用于主体元素,但样式不应影响选择器指定的嵌套元素。我尝试过,:not但它似乎不适用于儿童元素。这是我的例子:

<!DOCTYPE html>
<html>
<head>
<style>
body:not(.not-disabled) {
  color: #ff0000;
  opacity: 0.4;
  pointer-events: none;
}
</style>
</head>
<body>

  <h1>This is a heading</h1>

  <p class="not-disabled">This is a paragraph.</p>
  <p class="not-disabled">This is another paragraph.</p>
  <button class="not-disabled">Enabled</button>
  <button>Disabled</button>
  <div>This is some text in a div element.</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望这些段落不透明。另外,这两个按钮都被禁用,但我想启用其中之一,即:Ebabled,但我的期望结果是不正确的。

有什么办法可以做到这一点吗?请不要对我评价太严厉。我是 CSS 新手,我用 google 搜索但找不到解决方案。可能作为一个新手,我的问题是错误的。

css

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

标签 统计

c ×5

ruby ×2

arrays ×1

css ×1

embedded ×1

javascript ×1

linker ×1

memory-management ×1

uml ×1