你可以看到我在下面尝试做的事情:
typedef struct image_bounds {
int xmin, ymin, xmax, ymax;
} image_bounds;
#define IMAGE_BOUNDS(X) ((image_bounds *)(X));
typedef struct {
image_bounds bounds;
float dummy;
} demo;
int
main(void) {
demo my_image;
/* this works fine */
((image_bounds *)(&my_image))->xmin = 10;
/* why doesn't this work? i get the following error:
/* In function main:
cast.c:20: error: expected expression before = token
*/
IMAGE_BOUNDS(&my_image)->xmin = 20;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
正如你从上面可以看到,C演员有效,但宏版本没有,我做错了什么?
如标题中所述,目标是在不使用任何标准库函数或下标的情况下将C样式字符串复制到内存中.
这是我到目前为止[求助]
#include "std_lib_facilities.h"
char* strdup(const char* p)
{
int count = 0;
while (p[count]) ++count;
char* q = new char[count+1];
for (int i = 0; i < count + 1; ++i) *(q + i) = *(p + i);
}
int main()
{
char word[] = "Happy";
char* heap_str = strdup(word);
}
Run Code Online (Sandbox Code Playgroud)
显然问题是分配just *p(相当于p[0])只将字母分配"H"给内存.我不知道如何在没有下标或STL函数的情况下分配C风格的字符串.
可以写一些像:
class Test(object):
def _decorator(self, foo):
foo()
@self._decorator
def bar(self):
pass
Run Code Online (Sandbox Code Playgroud)
这失败了:@self中的自我是未知的
我也尝试过:
@Test._decorator(self)
Run Code Online (Sandbox Code Playgroud)
也失败了:测试未知
我想暂时更改装饰器中的一些实例变量,然后在更改它们之前运行装饰方法.
在Objective-C中编写一个iPhone应用程序,我有一个字符串形式的日期(UTC格式,最后用Z表示零UTC偏移,或祖鲁时间),我需要将其解析为一个NSDate对象.
一点代码:
NSDateFormatter* df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
NSString* str = @"2009-08-11T06:00:00.000Z";
NSDate* date = [df dateFromString:str];
通过调试器运行,date最终nil!我假设它与我的日期格式字符串有关.Z在日期格式文字中,将日期格式设置为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'.我自己的模块覆盖了内置的Python(特别是日志记录模块).这是我的项目布局:
run.py
package/
__init__.py
logging/
__init__.py
...
Run Code Online (Sandbox Code Playgroud)
run.py
from package import main
main()
Run Code Online (Sandbox Code Playgroud)
包/ __ init__.py
from __future__ import absolute_import
import logging
import logging.config
def main():
logging.config.fileConfig(...)
Run Code Online (Sandbox Code Playgroud)
包/记录/ __ init__.py
class Logging(object):
pass
Run Code Online (Sandbox Code Playgroud)
现在看来,上面的代码是有效的.一旦我尝试从package.logging导入Logging类,如下所示:
from __future__ import absolute_import
import logging
import logging.config
from package.logging import Logging
def main():
logging.config.fileConfig(...)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
AttributeError: 'module' object has no attribute 'config'
Run Code Online (Sandbox Code Playgroud)
我已经阅读了PEP 328发行说明,发现绝对导入非常简单.不幸的是我无法弄明白这一点.
我在这里错过了什么?
我在Python中有一些代码,我将有一堆类,每个类都有一个属性_internal_attribute.我希望能够生成这些属性到原始类的映射.基本上我希望能够这样做:
class A(object):
_internal_attribute = 'A attribute'
class B(object):
_internal_attribute = 'B attribute'
a_instance = magic_reverse_mapping['A attribute']()
b_instance = magic_reverse_mapping['B attribute']()
Run Code Online (Sandbox Code Playgroud)
我在这里缺少的是如何生成magic_reverse_mapping字典.我有一种直觉,有一个元类产生A和B是正确的方法来解决这个问题; 那似乎对吗?
我总是组织我的C源的方法是将结构,宏和函数原型放在头文件和.c文件中的函数实现中.但是,我最近一直在阅读大量项目的其他人的代码,我开始看到人们经常在C源本身中定义诸如结构和宏之类的东西,紧接在使用它的函数之上.我可以看到一些好处,因为你不必去寻找特定函数使用的结构和宏的定义,一切都在与使用它的函数大致相同的地方.但是我也可以看到它的一些缺点,因为它意味着没有一个用于结构/宏定义的中央存储库,因为它们分散在源代码中.
我的问题是,决定何时将宏/结构定义放在C源代码中而不是头文件本身有什么好的经验法则?
我有2个JQuery Date字段
到达日期不能是今天的日期 - 我在javascript中使用minDate:1对其进行了排序
出发日期必须至少在抵达日期前2天.我认为minDate:3会起作用,但那可以查询今天的日期.如果用户在到达字段中选择明天日期但是如果用户在将来选择到达日期则它会中断.我需要出发日期参考到达日期并提前2天将其移动到用户可以选择的最短日期,主要是在预订这家酒店时,用户不能入住一晚,需要2晚.
最后,我还需要计算到达日期和出发日期之间的晚数到第3个文本字段.因此,当输入出发日期时,它会自动输入第3个文本字段中的夜晚数.我还需要它反向工作,如果用户决定投入夜数,我需要相应地改变出发日期.
在C#中,我有一个我无法修改的A类.从这个类我创建了B类(即继承自A),它增加了一些属性.我还有一个静态函数,<A>在调用GetListOfA()时返回List .
如何将GetListOfA()的返回值转换为List <B>?
例如,将列表<B>bList = foo.GetListOfA()列为List<B>
我有一些javascript代码,在某一点上,设置window.location.hash为一个特定的字符串.这在Firefox 3中工作正常,但我想知道我以后是否会遇到问题,即这是一个跨浏览器的解决方案(包括IE6)?
另外,我使用的是ReallySimpleHistory.这会弄乱其内部状态吗?
谢谢