我试图gcc关闭我对二进制常量的使用.它们使代码更具可读性,但阻止我使用-pedantic我遵守的代码.我想要有一个类似-fnobinaryconstwarn或类似的开关(我认为在阅读手册页一段时间后我认为不存在)或使用
#pragma GCC diagnostic ignored "-pedantic"
Run Code Online (Sandbox Code Playgroud)
选择性地禁用如此处所述的短暂伸展的迂腐警告:有 选择地仅对部分翻译单元禁用GCC警告? 不幸的是,这似乎不起作用.我有什么选择?
对于 clang
#pragma GCC diagnostic ignored "-Wpedantic"
Run Code Online (Sandbox Code Playgroud)
虽然上面的行没有,但它会产生错误gcc.
我有以下代码:
class ObjectOne(object):
@classmethod
def print_class_name(cls):
print cls.__class__.__name__
def print_class_name_again(self):
print self.__class__.__name__
if __name__ == '__main__':
obj_one = ObjectOne()
obj_one.print_class_name()
obj_one.print_class_name_again()
Run Code Online (Sandbox Code Playgroud)
输出是:
type
ObjectOne
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
ObjectOne
ObjectOne
Run Code Online (Sandbox Code Playgroud)
但我想test_cls通过@classmethod装饰器保持作为类方法.
我怎么能做到这一点?
对不起,如果标题不像它应该的那样具有描述性,那么问题很难用几句话来表达.我试图通过malloc'ing找出我有多少内存,如果有效,写入该段.在某些系统上(x86_64上的所有linux),我在写入2049th mib时看到了段错误.代码是:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/mman.h>
int main (int argc, char **argv) {
void *addr;
int megasize = 2100
/// allocate the memory via mmap same result
//addr = mmap ((void *) 0, (size_t) megasize << 20, PROT_READ | PROT_WRITE,
// MAP_PRIVATE | MAP_ANONYMOUS, (int) -1, (off_t) 0);
addr = malloc(megasize << 20);
if (addr == MAP_FAILED) {
fprintf (stderr, "alloc of %d megabytes failed %s\n", megasize,
strerror (errno));
exit (1);
};
printf ("got …Run Code Online (Sandbox Code Playgroud) 可以sml通过and关键字定义相互依赖的数据类型.现在我有两个相互引用的结构,看起来我看到的错误是因为它是相互递归的,但我没有看到以这种方式添加and的方法.
例:
structure Machine = struct
structure F = Frame
...
end
structure Frame = struct
...
reference to Machine.wordsize
end
Run Code Online (Sandbox Code Playgroud)
这可以使用还是设计不兼容sml?我正在移植代码Ocaml,显然这是在那里工作.