小编Max*_*ers的帖子

字符常量的C编码

我的程序员的本能会说c中的字符常量(例如:'x')是使用编译它的机器上的机器字符集编码的.但是,以下内容来自"C编程语言:ANSI C版"

"字符常量是用单引号括起来的一个或多个字符的序列,如'x'.只有一个字符的字符常量的值是执行时机器字符集中字符集的数值."

强调最后3个字.

任何人都可以解释为什么他们会说"在执行时".当然,字符值是在编译的二进制文件(或ELF,A.OUT ......)中编码的?

我在想,但无法对此提出任何合理的解释,肯定K&R知道他们在做什么!

c binary encoding character

7
推荐指数
1
解决办法
262
查看次数

从静态函数获取子类名称php

在php中我有一个ROOT类,所有其他类都继承该类.

abstract class ROOT{
    public static function getClass(){

    }
}
Run Code Online (Sandbox Code Playgroud)

我希望该函数返回从该类继承的对象的类(名称).因此,如果我创建一个对象Tree(扩展ROOT)并在其上调用getClass,它应该说"Tree"

函数get_class()仅适用于对象,因此不能在静态函数中使用.有没有办法实现这个目标?

php oop

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

GCC函数调用错误

我有以下C代码:

#ifdef _MODE_DEBUG
void program_exit(void){
#else
void program_exit(const unsigned char* fileName, unsigned int lineNumber){
    printf("The program was called to terminate early from file \"%s\" line %u", fileName, lineNumber);
#endif
//We have to call cleanup() wherever possible.
arguments_cleanup(void);

exit(1);
}
Run Code Online (Sandbox Code Playgroud)

哪个应该在预编译版本的代码中动态提供一个函数,具体取决于是否定义了_MODE_DEBUG.然而,GCC抱怨它在调用arguments_cleanup之前需要各种令牌.为什么GCC不承认这是一个有效的功能,或者为什么这个无效?

c gcc c-preprocessor

0
推荐指数
1
解决办法
209
查看次数

标签 统计

c ×2

binary ×1

c-preprocessor ×1

character ×1

encoding ×1

gcc ×1

oop ×1

php ×1