我刚刚开始学习Python并使用Emacs作为我的编辑器.目前,Emacs对普通字符串(单引号)和文档字符串(三引号)使用相同的颜色.我希望文档字符串是一种不同的颜色,因此我使用"选项 - >自定义Emacs"菜单选项将"font-lock-doc-face"更改为新颜色并保存更改.但是,Emacs继续保持文档字符串与普通字符串相同的颜色.更改普通字符串的颜色也会将更改应用于文档字符串.
似乎Emacs将docstrings和普通字符串视为相同.有没有办法让Emacs正常地找到并将Python文档字符串与普通字符串分开?
编辑:我正在使用Emacs 23.1.1(Kubuntu 10.10软件包)和默认的Python模式设置.我还使用了带有午夜主题的颜色主题包.
我是一名嵌入式C开发人员,他最近开始在嵌入式设备上搞乱C++代码,当一个类访问外部设备上的内存映射寄存器或数据等易失性数据时,我不确定如何应用const-correctness.模数转换器(ADC).
例如,我有通过指针访问其内存映射寄存器来连接设备硬件模块的类,如下所示:
class IOPin
{
public:
/* Constructor, destructor, other methods...*/
// should this be a const method?
bool ReadIOState() {return portregs_->state;}
private:
/* Other private stuff...*/
// Constructor points this to the right set of memory-mapped registers
volatile struct portregs_t
{
uint32_t control;
uint32_t state;
uint32_t someotherreg;
} *portregs_;
};
Run Code Online (Sandbox Code Playgroud)
寄存器名称当然是为了举例说明.我正在为任何好奇的人使用Microchip PIC32器件.
根据我可能不正确的理解,标记方法const意味着对象的可观察状态不应该改变.所以,应该在ReadIOState()方法不是const因为它访问volatile,可以在任何时候改变,因此调用者会观察到变化数据?或者应该是const因为该方法没有明确改变任何东西?
目前,const由于问题中所述的原因,我倾向于不采用该方法.在找到这篇GotW文章之后尤其如此,该文章指出其含义const正在改变为"能够同时阅读".我的嵌入式应用程序是单线程的,但我认为这对于const一般情况来说可能是一个很好的试金石.
另外,编译器如何处理 …