例如,请参阅以下代码。如何在 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 块。
更新
下图有道理吗?

我在批处理脚本中有以下“功能”:
:myfunction
setlocal
set _variable=%*
:: do something with %_variable%
endlocal
exit /B 0
Run Code Online (Sandbox Code Playgroud)
注意setlocal/endlocol对。
正在endlocal这里需要?或者它是多余的?是否exit隐式结束本地化?
额外问题:可以在不测试行为的情况下回答这个问题,例如通过引用官方消息来源吗?
使用 CAPL 和 CANoe 通过 CAN 上的 ISO-TP 传输大量数据。是否有例程可以处理嵌入在 CAPL 中的数据分段,还是我需要编写自己的解释?
是否可以将私有数据添加到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) 我在UML/OMG网站上搜索了UML类图元模型,但我一无所获.我不是在寻找某人的解释,我真的想要官方的元模型规范.
如果有人能帮助我,我会很高兴的.提前致谢.
static void ddict_debug(const char* fmt, ...) G_GNUC_PRINTF(1, 2);
Run Code Online (Sandbox Code Playgroud)
我在.c文件中发现了这个,我不明白这一行:是否只有一个函数声明或两个?
这段代码是什么意思?
在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) 考虑以下代码:
#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 …
为什么以下代码在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)
我假设转换会导致垃圾数据包含在转换整数中,因此设备输出对我有意义,但为什么整数不受模拟器中转换中引入的额外数据的影响?
为了摆脱静态代码分析警告 (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?
错误消息指出用户原型是可选的。所以应该可以定义它,对吧?