小编ser*_*gej的帖子

如何在 UML 活动图中对函数的不同返回值进行建模?

例如,请参阅以下代码。如何在 UML 活动图中对函数的不同返回值进行建模?

typedef enum {CLOSED, OPEN, UNKNOWN} sw_state_t;

sw_state_t read_input(int index)
{
    uint8_t sw_state;

    if (spi_read(&sw_state) == STATUS_OK) {
       if (sw_state & (1 << index))
           return CLOSED;
       else
           return OPEN;
    }

    return UNKNOWN;
}
Run Code Online (Sandbox Code Playgroud)

我想显示的是函数返回的值。我拥有的是一个带有一个输入 ActivityParameter 和一个输出 ActivityParameter 的 Activity 块。

更新

下图有道理吗?

在此输入图像描述

c uml activity-diagram

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

退出前是否需要 endlocal ?

我在批处理脚本中有以下“功能”:

:myfunction
    setlocal
    set _variable=%*
    :: do something with %_variable%
    endlocal
    exit /B 0
Run Code Online (Sandbox Code Playgroud)

注意setlocal/endlocol对。

正在endlocal这里需要?或者它是多余的?是否exit隐式结束本地化?

额外问题:可以在不测试行为的情况下回答这个问题,例如通过引用官方消息来源吗?

windows cmd batch-file

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

使用 CAPL 在 CANoe 中通过 ISO-TP(传输协议)传输数据

使用 CAPL 和 CANoe 通过 CAN 上的 ISO-TP 传输大量数据。是否有例程可以处理嵌入在 CAPL 中的数据分段,还是我需要编写自己的解释?

can-bus capl canoe

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

是否可以将私人数据添加到GtkWidget?

是否可以将私有数据添加到GtkWidget

背景:

我有很多GtkCheckBottons,所有这些小部件都连接到同一个回调.在回调中,我想处理小部件私有数据(或至少区分小部件).

例:

// checkbox signal callback
void on_checkbox_tcoggled(GtkWidget* widget, gpointer data) {
    MyClass* me = data;
    MyPrivateData* priv = widget->priv;  // ???

    MyClass_foo(me, priv);
}
Run Code Online (Sandbox Code Playgroud)

c gtk gtk2

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

我在哪里可以找到UML类图的官方元模型?

我在UML/OMG网站上搜索了UML类图元模型,但我一无所获.我不是在寻找某人的解释,我真的想要官方的元模型规范.

如果有人能帮助我,我会很高兴的.提前致谢.

diagram uml class abstract metamodel

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

这个C代码是什么意思(G_GNUC_PRINTF)?

static void ddict_debug(const char* fmt, ...) G_GNUC_PRINTF(1, 2);
Run Code Online (Sandbox Code Playgroud)

我在.c文件中发现了这个,我不明白这一行:是否只有一个函数声明或两个?

这段代码是什么意思?

c static glib void

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

C:struct,union和enum的通用术语?

在C语言标准或文献中是否有结构,联合和枚举类型的通用术语?

更新:在处理以下宏时出现了这个问题:

/* GCC */
#if defined(__GNUC__)

# define TYPEDEF_PACKED_BEGIN(type, tag)                   \
typedef type __attribute__((packed, aligned(1))) tag

# define TYPEDEF_PACKED_END

/* Green Hills */
#elif defined(__ghs__)

# define TYPEDEF_PACKED_BEGIN(type, tag)                   \
#pragma pack(1)                                            \
typedef type tag

# define TYPEDEF_PACKED_END                                \
#pragma pack()

#endif
Run Code Online (Sandbox Code Playgroud)
TYPEDEF_PACKED_BEGIN(struct, my_struct_tag) {
    int a;
    int b;
} my_struct_type;
TYPEDEF_PACKED_END

TYPEDEF_PACKED_BEGIN(enum, my_enum_tag) {
    E_FOO,
    E_BAR
} my_enum_type;
TYPEDEF_PACKED_END
Run Code Online (Sandbox Code Playgroud)

c language-lawyer

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

std::initializer_list 构造函数和“支撑初始化”的问题

考虑以下代码:

#include <initializer_list>

class C {
public:
    C() = delete;
    C(int) {}
};

class D {
public:
    D(std::initializer_list<C> il) {} 
};

int main()
{
    std::initializer_list<C> il{};  // fine: empty list, no need to construct C
    D d2(il);                       // fine: calls initializer_list ctor with empty list
    D d3{il};                       // ditto
    D d4({});                       // still fine
    D d5{{}};                       // error: use of deleted function 'C::C()' 
                                    // WHY is the constructor of 'C' required here?
}
Run Code Online (Sandbox Code Playgroud)

我想D d5{{}};会用一个空列表调用initializer_list构造函数D …

c++ initializer-list c++11 list-initialization c++14

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

为什么这个uint32_t强制转换在iPhone模拟器和iPhone设备上表现不同?

为什么以下代码在iPhone模拟器和设备上的行为有所不同?我在intel macbook pro上运行模拟器,该设备是iPhone 5(型号MD297KS/A).

码:

uint8_t original = 23;
uint8_t * pointerToOriginal = &original;
uint32_t * casted = (uint32_t *)pointerToOriginal;
printf("original: %u\ncasted: %u\n", original, *casted);
Run Code Online (Sandbox Code Playgroud)

在模拟器上运行时的输出:

original: 23
casted: 23
Run Code Online (Sandbox Code Playgroud)

在设备上运行时的输出:

original: 23
casted: 2755278871
Run Code Online (Sandbox Code Playgroud)

我假设转换会导致垃圾数据包含在转换整数中,因此设备输出对我有意义,但为什么整数不受模拟器中转换中引入的额外数据的影响?

c iphone language-lawyer ios-simulator

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

__builtin_expect() 原型是什么?

为了摆脱静态代码分析警告 (QA-C),我需要为__builtin_expect().

我正在为 PowerPC使用WindRiver Diab编译器。在编译器手册中,我找到了以下信息:

__builtin_expect(long exp, long c): ...exp也是返回值。

所以,我的原型如下:

long __builtin_expect(long exp, long c);
Run Code Online (Sandbox Code Playgroud)

但是,它不编译,我收到以下错误:

错误 (dcc:1701):原型到内部 __builtin_expect 的无效类型 - 当内部被启用时,可选的用户原型必须匹配

看来我的原型不正确。什么是正确的原型__builtin_expect

错误消息指出用户原型是可选的。所以应该可以定义它,对吧?

c powerpc misra

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