我想在控制器中查看一些变量,它尝试了以下内容:
Rails.logger.debug "Year: #{Time.now.year}"
puts "Year: #{Time.now.year}, Month: #{@month}"
在哪里可以看到Logger或Puts在生产模式下的输出?我需要这样设置一些东西来查看这些吗?
有人可以帮我识别标准(C99和C++ 03)下面的行会发生什么?
uint16_t a = 5;
Run Code Online (Sandbox Code Playgroud)
因此,左边是类型变量,右边是文字,文字值何时以及如何获得变量的类型?
上述作业是否等同于以下声明?
uint16_t a = (uint16_t)5; /* C */
uint16_t a = reinterpret_cast<uint16_t>(5); // C++
Run Code Online (Sandbox Code Playgroud)
怎么样:
uint16_t a = 5u;
Run Code Online (Sandbox Code Playgroud)
如果你有类似的东西:
uint32_t b = a + 5;
Run Code Online (Sandbox Code Playgroud)
以上陈述是否等同于以下陈述?
uint32_t b = (uint32_t)(a + (uint16_t)(5)); /* C */
uint32_t b = reinterpret_cast<uint32_t>(a + reinterpret_cast<uint16_t>(5)); // C++
Run Code Online (Sandbox Code Playgroud)
C11和C++ 14的变化是什么?另外,请假设系统int是32位.
我已经在C编写了一段时间,但从来没有真正理解它,但它总是困扰我,所以如果有人可以帮助我解决它,我将不胜感激.
谢谢...
(编辑:假设int是32位)
我正在研究嵌入式程序,在某些情况下如果没有条件,我想尽快从函数返回.如果我有以下代码,我正在进行嵌入式编程:
foo() {
if (a < b) {
return 0; // bail, since condition is met
} else {
// lots of calculations in this block
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,有多个return语句是不是很糟糕?这是不好的做法吗?有更好的方法吗?MISRA是否对此有所说明?
注意:这个问题特别针对嵌入式系统,与MISRA有关,而不仅仅是C/C++
谢谢...
我有一个无符号整数数组,需要存储指向数据和函数以及一些数据的指针.在我正在使用的设备中,sizeof指针与sizeof unsigned int相同.如何将指向函数的指针转换为unsigned int?我知道这使代码不可移植,但它是微控制器特定的.我试过这个:
stackPtr[4] = reinterpret_cast<unsigned int>(task_ptr);
Run Code Online (Sandbox Code Playgroud)
但它给我一个错误"无效的类型转换"
将它转换为void指针然后转换为int是混乱的.
stackPtr[4] = reinterpret_cast<unsigned int>(static_cast<void *> (task_ptr));
Run Code Online (Sandbox Code Playgroud)
这样做有干净的方法吗?
编辑 - task_ptr是函数指针 void task_ptr(void)
爱巴马尔的回答,将我的便携性缺点带走了.此外,void指针数组实际上比无符号Ints更有意义.谢谢Barmar和isaach1000.
编辑2:知道了,我的编译器正在考虑使用大内存模型,因此它使用的是32位指针,而不是我期望的16位(小型微处理器,总内存为17K).
下面的代码可以在 C 语言中运行,但是是否可以在 Python 中执行类似的操作?它可以是 2.7.x 或 3.x。
char bytes[] = "\x90\x90\x90\x90\x90\x90\x90\x90\xeb\x1a\x5e\x31\xc0"
"\x88\x46\x07\x8d\x1e\x89\x5e\x08\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\xe8\xe1\xff"
"\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x20";
int main() {
((int (*)())bytes)();
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
#!/usr/bin/python
import ctypes
from subprocess import call
lib = ctypes.cdll.LoadLibrary(None)
shellcode = (b"\x90\x90\x90\x90\x90\x90\x90\x90\xeb\x1a\x5e\x31\xc0"
"\x88\x46\x07\x8d\x1e\x89\x5e\x08\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\xe8\xe1\xff"
"\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x20")
code = ctypes.create_string_buffer(shellcode)
addr = id(shellcode)
# Test Shellcode
functype = ctypes.CFUNCTYPE(ctypes.c_int)
func = functype(addr)
func()
Run Code Online (Sandbox Code Playgroud)
我不断得到Segmentation fault (core dumped)。
如何使用google-maps-for-rails将颜色参数传递给google maps api?我想根据一个值设置控制器内每个标记的颜色,所以有些是红色,有些是黄色,有些是绿色.我相信它是Symbol中的图标属性,它看着:
https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions
另外,我想在标记内有一个1-99的数字,是否可能?到目前为止,我有这个.
@json = Device.all.to_gmaps4rails do |device, marker|
end
Run Code Online (Sandbox Code Playgroud)
几天来我一直在努力,任何帮助都会受到赞赏.
我有多个目录,这样
~/project/foo/Debug
~/project/bar/Debug
... and so on
Run Code Online (Sandbox Code Playgroud)
文件夹project和Debug是常数。
我在Debug目录中,foo并且bar是项目名称。当我在~/project/bar/Debug,是有可能的变量设置为字符串bar,而当我在目录时,~/project/xxxxx/Debug该变量设置为xxxxx?
我已经编程了一段时间,在我看来,以下两个if语句会产生相同的结果,但我总是质疑它,有人可以帮我解决这个问题吗?
int x, y;
if (x - y) {
//some code
}
Run Code Online (Sandbox Code Playgroud)
VS
int x, y;
if (x != y) (
// some code
}
Run Code Online (Sandbox Code Playgroud)
谢谢...
使用介子构建,如果我在中定义了多个测试meson.build(如此处所示),是否可以构建并运行特定的单个测试?假设我正在开发一个特定的模块,并且想使用命令提示符运行该模块的测试?
具有接口类的多重继承是一种很好的设计实践吗?
它似乎工作,使运行gtest unittest套件方便.那么在下面的例子中,B类的多重继承是一个糟糕的设计实践吗?
#include <stdio.h>
class BInterface {
public:
virtual ~BInterface() {}
virtual void idb() = 0;
};
class A {
public:
A() {}
void ida() {printf("I am A\n");}
};
class B : public A, public BInterface { // ########### Is this OK? ############
public:
B() {}
void idb() {printf("I am B\n");}
};
int main() {
B BObject;
BInterface* BI = &BObject;
BI->idb();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我只是继承接口类,但在这种情况下是多重继承是一种糟糕的设计,考虑到大多数代码专家建议不要使用多重继承.
c++ ×5
c ×3
fish ×1
gmaps4rails ×1
logging ×1
meson-build ×1
misra ×1
oop ×1
production ×1
python ×1