标签: structure

为什么这个联合的大小是2的位域?

我在Windows上的turbo C上工作,其中char占用一个字节.现在我的问题在于下面的联合.

union a
{
 unsigned char c:2;
}b;
void main()
{
printf("%d",sizeof(b));  \\or even sizeof(union a)
}
Run Code Online (Sandbox Code Playgroud)

该程序打印输出为2,其中union应该只占用1个字节.为什么会这样?

对于struct,它可以很好地给出1个字节但这个联合工作不正常.

还有一件事如何访问这些位字段.

scanf("%d",&b.c);  //even scanf("%x",b.c);
Run Code Online (Sandbox Code Playgroud)

没有用,因为我们不能有位的地址.所以我们必须使用下面的另一个变量

int x;
scanf("%d",&x);
b.c=x;
Run Code Online (Sandbox Code Playgroud)

我们不能避免吗?有没有其他方法???

c bit-manipulation structure unions

3
推荐指数
1
解决办法
3147
查看次数

"做到这一切"页面结构和需要注意的事项?

我还在用PHP(我的第一语言)弄湿我的能力,我已经达到了能够编写一个处理各种不同相关请求的页面的能力水平.它们通常有这样的结构:

(伪代码)

<?php
include 'include/functions.php';
IF authorized

  IF submit (add data)
  ELSE IF update (update data)
  ELSE IF list (show special data)
  ELSE IF tab switch (show new area)
  ELSE display vanilla (show default)

ELSE "must be registered/logged-in"

?>
<HTML>
  // snip
  <?php echo $output; ?>
  // snip
</HTML>
Run Code Online (Sandbox Code Playgroud)

这一切都运行得很好,很快就很酷.但是我仍然在黑暗中感觉自己的方式...并希望专业人士对这种类型的页面设计提出一些意见......

  • 这是一个很好的长期结构吗?(似乎很容易扩大......)
  • 这种设计是否存在安全风险?
  • 有角落我应该避免画自己吗?

只是对未来的事情感到好奇,真的......

php structure

3
推荐指数
1
解决办法
224
查看次数

将struct返回为void

我有一个函数返回一个void数据.我需要将它作为结构接收.例如.说一个结构widget_data.一个返回void数据的函数GetObjectData().

widget_data *wd=GetObjectData();
Run Code Online (Sandbox Code Playgroud)

GetObjectData()返回sd->data.

sd结构在哪里,数据void类型.

当我编译它时,我收到错误信息

invalid conversion from void* to widget_data*
Run Code Online (Sandbox Code Playgroud)

c++ structure

3
推荐指数
1
解决办法
411
查看次数

Python实践强制执行字节码编译?(pyc文件)

我正在阅读Python解释器,因为我无法理解为什么有些东西有python编译对象(.pyc),但其他人没有.

我得到了我的问题的答案,但现在我很困惑.好吧,解释器将一个脚本编译成一个模块......如果我正确地理解了这一点,它就像C中的一个对象一样(C程序员,这里是Python新手) - 或者我想更像是一个.class在Java中,因为它是编译的字节码,而不是本机指令......无论如何,当你导入一个脚本时,或者如果你明确地称它为编译它(由于某种原因不太有利),它会这样做.

那么根据这种理解,编译后的字节码之间是否存在运行时差异?假设只有一个解释器(一个字节码解释器),它意味着如果模块尚未编译,它必须在进行解释之前进行语法/ lexing /解析(编译).这不会导致更高的执行时间吗?

因此,如果你认为上述内容是真的,那么显然最好将模块编译成.pyc,而不是作为标准的.py脚本运行.

这是否意味着最好尽可能在主要运行中执行最少的执行?

我认为,如果你的入口点有任何硬核逻辑(即我的有几个树遍历,以及其他重要的比较),那么这个入口点本身是否应该被包装以便它被编译?

也就是说,而不是:

# file.py:
def main():
    <stuff goes here - setup, whatever shared resources different modules need, etc.>

main()
Run Code Online (Sandbox Code Playgroud)

这样做会更好吗:

# wrapper.py:
from file.py import *
main()
Run Code Online (Sandbox Code Playgroud)

希望我能解释一下我的要求.我很可能错误地理解了如何在Python中使用解释器/编译器,这个问题甚至都不合理 - 我对Python很新.

TIA

python interpreter bytecode structure python-3.x

3
推荐指数
1
解决办法
775
查看次数

了解目录结构建议

我开始在Django示例项目中创建第一个命令:

django-admin.py startproject test

给我:

- root
  - test
    - __init__.py 
    - settings.py 
    - urls.py 
    - wsgi.py 
    - manage.py
Run Code Online (Sandbox Code Playgroud)

现在我创建第一个应用程序

python manage.py startapp foo

它为我创建了文件夹 root/foo

所以我应该如何理解我的root/test文件夹.这个文件夹是否为我的项目的全局配置而已?(类似于Symfony 2 app文件夹)

我很困惑因为Django docs告诉我:

内部mysite /目录是项目的实际Python包

但是manage.py startapp foo在root下创建应用程序,而不是root/test(mysite等效)

[编辑]

两个命令:

python manage.py startapp app
Run Code Online (Sandbox Code Playgroud)

和:

django-admin.py startapp app
Run Code Online (Sandbox Code Playgroud)

在项目根目录中给我app,而不是在 root/name_of_generated_project

Django 1.4

[编辑] 2

对不起,伙计们,我的错,现在一切都好.

[编辑] 3

我想再次创建另一个项目:

django-admin.py startproject jobeet

我的初始结构与上面类似.

现在我想尝试创建app(在jobeet文件夹中):

django-admin.py startapp jobs

而我最终jobeet/jobs没有jobeet/jobeet/jobs

再次:/

所以在我的项目根目录中我有:

- jobeet
- jobs …
Run Code Online (Sandbox Code Playgroud)

django configuration structure directory-structure

3
推荐指数
1
解决办法
6027
查看次数

Python,ctypes,多维数组

我有Python代码和C代码的结构.我填写这些字段

("bones_pos_vect",((c_float*4)*30)),
("bones_rot_quat",((c_float*4)*30))
Run Code Online (Sandbox Code Playgroud)

在具有正确值的python代码中,但是当我在C代码中请求它们时,我从所有数组单元格中得到0.0.为什么我会失去价值观?我的结构的所有其他领域工作正常.

class SceneObject(Structure):
    _fields_ = [("x_coord", c_float),
                ("y_coord", c_float),
                ("z_coord", c_float),
                ("x_angle", c_float),
                ("y_angle", c_float),
                ("z_angle", c_float),
                ("indexes_count", c_int),
                ("vertices_buffer", c_uint),
                ("indexes_buffer", c_uint),
                ("texture_buffer", c_uint),
                ("bones_pos_vect",((c_float*4)*30)),
                ("bones_rot_quat",((c_float*4)*30))]

typedef struct
{
    float x_coord;
    float y_coord;
    float z_coord;
    float x_angle;
    float y_angle;
    float z_angle;
    int indexes_count;
    unsigned int vertices_buffer;
    unsigned int indexes_buffer;
    unsigned int texture_buffer;
    float bones_pos_vect[30][4];
    float bones_rot_quat[30][4];    
} SceneObject;
Run Code Online (Sandbox Code Playgroud)

python ctypes structure multidimensional-array python-3.x

3
推荐指数
1
解决办法
8384
查看次数

结构矢量值意外变化

我有一个奇怪的问题.有一个结构向量.使用临时结构,我push_back到结构向量.但是当我检查第一个成员时cnt,我发现它变了.任何的想法?(下面的代码是简化版,但代表性的一个)

struct Vector
{
  float *dim;

  Vector ()
  {
    dim = new float [3];
  }
};

struct Face
{
  float an_N, an_P;
  int P, N;
  Vector Af;
  float Ad;
  Vector cnt;
  float ifac;
  float mf;
};

std::vector <Face> face;

Face temp_face;

for (;;)
{
    temp_face.cnt.dim[0] = 0.f;
    temp_face.cnt.dim[1] = 0.f;
    temp_face.cnt.dim[2] = 0.f;

    for (int q=0; q<n_vtx_2D; ++q)
    {
        temp_face.cnt = temp_face.cnt + pt[vtx[q]] / n_vtx_2D;                
    }                 

    face.push_back(temp_face);
}

std::cout << face[0].cnt.dim[0] << std::endl;
Run Code Online (Sandbox Code Playgroud)

产量

0.25

0

c++ structure stdvector

3
推荐指数
1
解决办法
142
查看次数

具有填充的结构的大小

我有以下结构.在侧面计算尺寸的地方.填充后结构的大小应为30Bytes.但是大小是28.结构尺寸28如何?

#include <stdio.h>
struct a
{
    char t;      //1 byte+7 padding byte      Total = 8bytes
    double d;    //8 bytes                    Total = 16bytes
    short s;     //2 bytes                    Total = 18Bytes
    char arr[12];//12 bytes 8+8+4+12=32.      Total = 30Bytes
};
int main(void)
{
    printf("%d",sizeof(struct a));  // O/p = 28bytes
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c struct memory-management structure

3
推荐指数
1
解决办法
2652
查看次数

如何在矢量中搜索结构项?

我正在尝试使用矢量实现创建库存系统,但我似乎遇到了一些麻烦.我正在使用我制作的结构来解决问题.注意:这实际上不是游戏代码,这是一个单独的解决方案,我用来测试我对矢量和结构的知识!

struct aItem
{
    string  itemName;
    int     damage;
};

int main()
{
    aItem healingPotion;
    healingPotion.itemName = "Healing Potion";
    healingPotion.damage= 6;

    aItem fireballPotion;
    fireballPotion.itemName = "Potion of Fiery Balls";
    fireballPotion.damage = -2;

    vector<aItem> inventory;
    inventory.push_back(healingPotion);
    inventory.push_back(healingPotion);
    inventory.push_back(healingPotion);
    inventory.push_back(fireballPotion);

    if(find(inventory.begin(), inventory.end(), fireballPotion) != inventory.end())
                {
                        cout << "Found";
                }

    system("PAUSE");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

前面的代码给出了以下错误:

1> c:\ program files(x86)\ microsoft visual studio 11.0\_vc\include\xutility(3186):错误C2678:二进制'==':找不到带有'aItem'类型左手操作数的运算符(或者没有可接受的转换)

还有更多错误,如果您需要,请告诉我.我敢打赌,这是一件小而愚蠢的事,但我已经被它吵了两个多小时.提前致谢!

c++ structure vector

3
推荐指数
1
解决办法
455
查看次数

C编程.指向结构的指针

这是我的第一篇文章.我对C的指针及其与struct的关系非常困惑.我搜索了更多信息,但无法真正得出结论.例如,给定此结构定义

typedef struct node
{
     int info;
     struct node *next;
}NODE;
Run Code Online (Sandbox Code Playgroud)

那么这四个宣言的差异和影响是什么呢?

1. NODE *node1 = malloc (sizeof(NODE));
2. NODE *node1 = (struct node *) malloc (sizeof(NODE));
3. NODE *node1 = (struct node *) malloc (sizeof(NODE *));
4. NODE *node1 = malloc (sizeof(NODE *));
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c stack pointers structure list

3
推荐指数
1
解决办法
171
查看次数