10.8
I figured out a way to get the offsetof any member statically:
class A {
char a;
int b;
char c;
}
void main()
{
int[A.init.a.offsetof] x;
}
Unfortunately, I can't figure a way to get the class' size statically.
This doesn't work:
int[A.classinfo.init.length] x;
Any way to fetch the size of A?
Andrei
相关的信件
This question was on .learn, from where the answer (by Jarret) was:
__traits(classInstanceSize, Class)
========================================
Unfortunately, I can't figure a way to get the class' size statically.
>> This doesn't work:
>>
>> int[A.classinfo.init.length] x;
>>
>> Any way to fetch the size of A?
>>
>
> sizeof(A) doesn't work?
>
>
sizeof(A) doesn't compile.
A.sizeof == Object.sizeof == (void*).sizeof
8/4 更新
本贴将随时更新,大家有什么好经验请在跟贴中提供,提供地址也行,测试过的最好能告知测试环境,在归类整理时我会公示贡献人。为新来者减少障碍,我们一起努力!
一、开发环境编译器DMD、Buile工具dsss、IDE 配置
参见:
http://bbs.d-programming-language-china.org/index.php各板块有较详细的资料
安装tangosvn :
如果下载的是捆绑了dmd的,就不需要安装单独的dmd了,如果已经安装了单独的dmd,要把系统路径中dmd和dm的路径去掉,并配置好tango\bin下的sc.ini文件。
压缩包更新比较慢,建议使用svn下载,地址:
http://svn.dsource.org/projects/tango/trunk/。可以随时得到bug修复的版本,如果使用的是svn下载的版本,就需要安装单独的dmd了,并把dmd和dm的bin和lib路径设好。建议使用dmd和tango平行的目录,这样比较一目了然。
执行 tango\lib\build-dmd.bat
编译出: tango-base-dmd.lib
执行 tango\lib\build-tango.bat
编译出tango-user-dmd.lib
执行 tango\lib\build-win32.bat
编译出tango-win32-dmd.lib
执行 tango\lib\install-dmd.exe (很多文章里没有写)
会在\D\dmd目录下新建一个 \import 目录,会自动添加一些tango文件,并且会自动改写
D:\D\dmd\bin\sc.ini配置文件,还会将上面编译出的3个lib文件自动复制到dmd\lib目录下。剩下的就是手工配置好系统路径和ide后就可以工作了。
#dmd1033
二、中文资料:
参见:
http://bitworld.ys168.com/ 中文手册,目前是dmd1.028
d圈子(论坛)
http://dlang.group.iteye.com/ 高手较多
1、关闭控制台:
a、在 项目属性 ——〉编译器选项 中勾选“不显示控制台窗口”和“without console window”选项。(yidabu贡献)
或
b、在项目的 others 目录下建一 A.def 文件,添加如下两行内容:(bbs.dvole.com 提供的文件)
EXETYPE NT
SUBSYSTEM WINDOWS
保存后将 文件名 添加到 项目属性 ——〉编译器选项 ——〉额外选项 中即可。
两者选其一就可。
在Poseidon r239中可行。
2、让控制台停住:(kuan 贡献)
import std.stdio;
void main()
{
//......
getch();
} //测试过
或
import std.process;
void main()
{
//......
system( "pause" );
}
或用tango
import tango.io.Console;
void main()
{
//......
Cin.get();
}
3、处理中文:
import std.stdio;
import std.c.locale;
import std.process;
void main(char[][] argv)
{
fwide(stdout, 1);
setlocale(0, "China");
writefln("你好,DMD");//d方式,也支持c的printf()方式,参见dmd1.028中文手册(上)10.1.20
system( "pause" );
} //目前在dmd2.013 win2003中,任何中文输出的都是人民币符号,不知为什么,解决后再修正
kuan 2010-03-25
1. import std.c.stdio, std.windows.charset, std.process;
2.
3. void main()
4. {
5. // TEST on DMD 1.056 and 2.042
6. printf( toMBSz("中文\n" ) );
7. printf( toMBSz("中文加ENGLISH加數字123456789\n" ) );
8. std.process.system( "pause" ); // pause
9. }
。。。
分享到:
相关推荐
### CTEX常见问题汇总知识点详解 #### A. 关于FAQ - **CTEX的作用:** CTEx是一个专注于中文LaTeX排版系统的社区和支持平台。它不仅提供了一系列的工具和资源来帮助用户更好地处理中文文本,还搭建了一个活跃的...
"web常见问题汇总"这个主题涵盖了从服务器端编程到前端设计的多个方面。以下是根据提供的压缩包文件名所涉及到的知识点的详细解析: 1. **PHP函数**(常用的PHP函数.txt): PHP是一种广泛使用的服务器端脚本语言...
2. **PowerBuilder编程俱乐部常见问题**:这可能是一个社区或论坛的问题汇总,包含了用户在实际编程过程中遇到的问题和解决方案。这些问题往往具有实践性,能够帮助开发者解决实际遇到的难题。 3. **PB常见函数**:...
Java常见问题集锦,让每一个新手可以从java开发中快速找到开发中遇到的问题!
Python 新手常见运行时错误汇总 Python 是一个非常popular的编程语言,对于初学者来说,可能会遇到很多错误。本文将汇总一些常见的 Python 运行时错误,并提供相应的解决方案,帮助新手快速排除错误,提高编程效率...
Python新手常见运行时错误汇总 Python是一种广泛使用的高级编程语言,对初学者来说,可能会遇到各种运行时错误。本文总结了常见的Python运行时错误,旨在帮助初学者更好地理解和解决这些问题。 1. Type Error: Can...
编程思维和基本算法的理解:新手开发者可能会因为对基础算法、数据结构理解不足,在面对复杂的前端编程思维如原型链、闭包、作用域链等问题时感到困扰。 计算机科学基础:对计算机体系结构、操作系统原理、网络通信...
这些语言以其强大的性能和灵活性而闻名,但也因为其对细节的严谨性导致了许多常见的陷阱和错误。以下是对这些常见错误的详细总结,旨在帮助初学者避免或理解这些错误,从而提升编程技能。 1. **类型不匹配**:C/C++...
虚拟机macOS常见问题汇总:01 无法联网的解决方法,02 全屏或分辨率低 安装VMware tools方法,03 共享电脑文件方法,04 Mac苹果电脑怎么安装软件【新手教程】,05 登录App Store无法下载软件解决方法:06 Intel VT-x...
Python 新手常见错误汇总 Python 语言是一种易于学习的编程语言,但是新手常常会遇到一些常见的错误。这些错误可能会导致程序崩溃或无法运行。在本文中,我们将总结 17 个新手常见的 Python 运行时错误,帮助您快速...
7. **异常处理**:忽视异常处理是新手常见的错误。不使用try/except块捕获和处理错误,可能导致程序意外终止。 8. **文件操作**:打开文件后忘记关闭,或者在读写文件时使用了错误的模式(如写入时未清空文件),...
在提供的压缩包文件中,"关于面试"可能包含了一些面试技巧和常见面试问题,这对于准备面试的测试新手来说是宝贵的参考资料。"测试用例"文件很可能是各种测试用例模板,新手可以参考这些模板来学习如何编写规范的测试...
《H3C 云计算产品故障处理手册汇总集》是一份包含四本专业手册的资源,旨在帮助用户解决在使用H3C云计算产品过程中遇到的各种问题。这个压缩包包含以下四份文档: 1. **H3C CAS常见问题FAQ V1.0**: 这份文档提供...
"网页制作常见问答集锦CHM.rar"是一个专门为新手和有经验的网页制作者准备的资源库,它汇总了作者在多年实践中遇到的各种问题及解决方案,覆盖了网页制作的各个方面。 首先,我们可以从“新手学习”这个标签入手,...
13. **做法缺失问题**:如果先绘制墙后套做法,可能需要检查是否正确套用到新建的墙层,以避免工程量汇总时的做法缺失。 14. **保温层定义**:软件在定义保温层时可能需要特定的操作步骤,具体操作可能涉及新建墙层...
这个文件可能提供了一些实用的学习方法和常见问题解答。 "css网页布局24则小技巧.txt"可能包含了一些进阶的布局技巧,比如流式布局、网格布局、响应式设计等。这些技巧能帮助新手创造出更专业、更适应不同设备的...
八、常见问题解决方法 1. 结转损益后,本期损益类科目还有余额? 原因:结转损益前未将所有的凭证过账;结转损益后又录入了损益类科目的凭证。 解决方法:删除结转损益生成的凭证,重新进行结转损益操作。 2. 凭证...
- **适合人群**: 需要避免C语言编程中常见问题的学习者。 ### Visual Basic #### 1. Visual Basic.NET教程 - **作者**: Francesco Balena - **简介**: 介绍了Visual Basic.NET的基本语法和开发技巧。 - **适合人群*...